Phillips Hue:使用电动开关时如何恢复以前的灯泡状态?

时间:2015-10-24 13:48:17

标签: zigbee philips-hue

我家里有许多飞利浦Hue灯泡,但它们现在只用于经典的开/关无色灯泡,主要是因为我发现电开关更实用而不是拉出我的iPhone或纠正HueTap只是打开/关闭灯。 - 每次关闭Hue灯泡时,它会忘记其状态,并始终以白色100%亮度重新开启。

经过大量的谷歌搜索(并没有找到任何解决方案),我想知道我是否错过了这一点以及为什么其他人没有这个问题。

我当然不热衷于在这里做软件甚至硬件工作,但如果我有一个合理的想法,我很乐意评估这样的道路:

  • 飞利浦有什么计划解决这个问题吗?最后一次固件更新没有帮助,飞利浦产品支持解释说这不是一个错误,只是它的设计方式。
  • 任何新的“有状态”灯泡?
  • 修补/自定义灯泡或网桥固件等任何解决方法?
  • 关于如何解决这个问题的任何建议?
  • 假设Hue灯泡本身没有安装任何内存,我猜他们总是以100%的亮度开启,然后注册到网桥?这将是恢复以前状态的最早时刻吗?
  • 使用Hue SDK可以解决这个问题吗? (Hue Bridge可以控制打开的灯泡需要多长时间?Java程序获得电灯开启通知的最快方法是什么?)
  • 如果直接使用某些ZigBee协议/技术,有机会更快地恢复以前的状态吗?

非常感谢任何提示。

祝你好运, 基督教

1 个答案:

答案 0 :(得分:9)

我同意,灯泡的最后状态不会被保留可能会令人恼火。有一个thread on the developer site of Hue,可以提供一些见解:

  • 显然,有关于这个主题的内部讨论。飞利浦的团队由于安全原因而犹豫是否实施恢复之前的状态":如果用户使用电子开关,用户可能会处于黑暗中,但是以前的状态是"关闭"。这一观点得到了重申in a tweet。在线程中还没有明确的结论。
  • 您可以执行变通方法并连续记录每个灯泡的状态,并在必要时恢复。有Node.JS script on GitHub似乎正是这样做的。如果您想将其作为独立解决方案运行,请购买Raspberry Pi(或类似的东西)。

基于SDK的解决方案的一个问题是延迟:在我的设置中,将灯泡识别为开启需要3-9秒,识别灯泡关闭需要大约20-30秒。

以下是使用python-hue-client监控灯泡可达性的Python代码:

from hueclient.api import hue_api
from hueclient.models.light import Light
from datetime import datetime
from subprocess import call


if __name__ == '__main__':
    my_ids = (1, 4, 5) # IDs of my light bulbs

    def handle(resource, field, previous, current):
        print "{} {}: changed reachability from {} to {}".format(datetime.now().isoformat(), resource.name, previous, current)

    hue_api.authenticate_interactive(app_name='test-app')

    # register my light bulbs
    for id in my_ids:
        light = Light.objects.get(id=id)
        print "{}: reachability is {}".format(light.name, light.state.reachable)
        # Monitor only the reachability of the light
        light.monitor(field=lambda l: l.state.reachable, callback=handle, poll_interval=0.1)

    print("Starting monitoring. Control-c to exit.")

    # Start the monitoring loop
    hue_api.start_monitor_loop()