discover_bulbs() 不起作用。来自 yeelight python 库

问题描述 投票:0回答:1

我正在尝试编写一个自动打开和关闭小米灯的脚本。安装库后

discover_bulbs()
可以正常工作

>>> from yeelight import discover_bulbs
>>> discover_bulbs()
[{'capabilities': {'bright': '50',
                   'color_mode': '1',
                   'ct': '2700',
                   'fw_ver': '45',
                   'hue': '359',
                   'id': '0x0000000002dfb19a',
                   'model': 'color',
                   'name': 'bedroom',
                   'power': 'off',
                   'rgb': '16711935',
                   'sat': '100',
                   'support': 'get_prop set_default set_power toggle '
                              'set_bright start_cf stop_cf set_scene cron_add '
                              'cron_get cron_del set_ct_abx set_rgb set_hsv '
                              'set_adjust set_music set_name'},
  'ip': '192.168.0.19',
  'port': 55443}]

,但一段时间后它返回一个空列表。如果您重置灯,则会再次搜索灯并在一段时间后停止响应。在应用程序中,灯工作。如果您直接设置灯的 IP,它也可以工作(但灯会不时更改其 IP)。 LAN 控制已启用。 代码如下。

from yeelight import *
import time
import schedule
# ip=discover_bulbs()[0]['ip']
ip=discover_bulbs()
print(ip)
bulb=Bulb(ip)

def turnOnAt16():
    bulb.turn_on()
    bulb.set_brightness(100)
    bulb.set_color_temp(4100)

def turnOnAt21():
    bulb.turn_on()
    bulb.set_rgb(255,0,0)
    bulb.set_brightness(100)

def main():
    schedule.every().day.at('08:00').do(turnOnAt16)
    schedule.every().day.at('16:00').do(turnOnAt16)
    schedule.every().day.at('21:30').do(turnOnAt21)
    schedule.every().day.at('23:00').do(bulb.turn_off)
    while True:
        schedule.run_pending()
        time.sleep(10)

if __name__=='__main__':
    main()

如何解决这个问题?

我浏览了所有论坛。我尝试重置灯泡。增加灯响应时间。

python lan
1个回答
0
投票

对我来说,固件更新后它开始无法正常工作。

通过这样做修复:

  • 打开 Yeelight 应用程序
  • 选择设备(您的灯)
  • 展开底部控件(右下角 - 看起来像 this
  • 点击“局域网控制”
  • 禁用和启用此功能
  • ip=discover_bulbs()
    - 又开始工作了
© www.soinside.com 2019 - 2024. All rights reserved.