Philips Hue:使用电控开关时如何恢复灯泡原来的状态?
Phillips Hue: How to restore previous state of bulb when using electric switch?
我家里有很多飞利浦 Hue 灯泡,但它们现在只像经典 on/off-no-color 灯泡一样使用,主要是因为我确实找到了 电子开关 比拔出我的 iPhone 或更正 HueTap 只是为了打开灯 on/off 更有用。 - 每次关闭 Hue 灯泡时,它都会忘记其状态并始终以 100% 的白色亮度重新打开。
经过大量谷歌搜索(并没有找到任何解决方案)后,我想知道我是否忽略了重点以及为什么其他人没有这个问题。
我当然不喜欢在这里做软件甚至硬件工作,但如果我有一个合理的想法,我很乐意评估这样的路径:
- 飞利浦有什么计划来解决这个问题吗?上次固件更新没有帮助,飞利浦产品支持解释说这不是错误,这只是它的设计方式。
- 有新的 "stateful" 灯泡吗?
- 是否有任何解决方法,例如修补/自定义灯泡或桥固件?
- 关于如何解决这个问题有什么建议吗?
- 假设 Hue 灯泡本身没有安装任何内存,我猜他们总是以 100% 的亮度打开然后注册到桥?这将是恢复之前状态的最早可能时刻?
- 这个问题可以用Hue SDK解决吗? (打开的灯泡需要多长时间才能由 Hue Bridge 控制?Java 程序收到灯泡被电打开通知的最快方法是什么?)
- 如果直接使用一些 ZigBee protocol/techniques,是否有机会以更快的方式恢复以前的状态?
非常感谢任何提示。
此致,
克里斯蒂安
我同意,没有保留灯泡的最后状态可能会令人恼火。有一个 thread on the developer site of Hue,它提供了一些见解:
- 显然,有关于此主题的内部讨论。由于 "security reasons",Philips 的团队在实施恢复先前状态方面犹豫不决:如果用户使用电子开关,可能会被蒙在鼓里,但之前的状态为 "off"。该意见已被重申in a tweet。跟帖中还没有确定的结论
- 您可以采取变通办法,持续记录每个灯泡的状态,并在必要时恢复。有一个 Node.JS script on GitHub 似乎正是这样做的。如果您想 运行 将此作为独立解决方案,请购买 Raspberry Pi(或类似的东西)。
基于 SDK 的解决方案的一个问题是延迟:在我的设置中,识别灯泡打开需要 3-9 秒,识别灯泡关闭需要大约 20-30 秒.
这是我的 Python 代码,用于监控灯泡的可达性,使用 python-hue-client:
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()
我家里有很多飞利浦 Hue 灯泡,但它们现在只像经典 on/off-no-color 灯泡一样使用,主要是因为我确实找到了 电子开关 比拔出我的 iPhone 或更正 HueTap 只是为了打开灯 on/off 更有用。 - 每次关闭 Hue 灯泡时,它都会忘记其状态并始终以 100% 的白色亮度重新打开。
经过大量谷歌搜索(并没有找到任何解决方案)后,我想知道我是否忽略了重点以及为什么其他人没有这个问题。
我当然不喜欢在这里做软件甚至硬件工作,但如果我有一个合理的想法,我很乐意评估这样的路径:
- 飞利浦有什么计划来解决这个问题吗?上次固件更新没有帮助,飞利浦产品支持解释说这不是错误,这只是它的设计方式。
- 有新的 "stateful" 灯泡吗?
- 是否有任何解决方法,例如修补/自定义灯泡或桥固件?
- 关于如何解决这个问题有什么建议吗?
- 假设 Hue 灯泡本身没有安装任何内存,我猜他们总是以 100% 的亮度打开然后注册到桥?这将是恢复之前状态的最早可能时刻?
- 这个问题可以用Hue SDK解决吗? (打开的灯泡需要多长时间才能由 Hue Bridge 控制?Java 程序收到灯泡被电打开通知的最快方法是什么?)
- 如果直接使用一些 ZigBee protocol/techniques,是否有机会以更快的方式恢复以前的状态?
非常感谢任何提示。
此致, 克里斯蒂安
我同意,没有保留灯泡的最后状态可能会令人恼火。有一个 thread on the developer site of Hue,它提供了一些见解:
- 显然,有关于此主题的内部讨论。由于 "security reasons",Philips 的团队在实施恢复先前状态方面犹豫不决:如果用户使用电子开关,可能会被蒙在鼓里,但之前的状态为 "off"。该意见已被重申in a tweet。跟帖中还没有确定的结论
- 您可以采取变通办法,持续记录每个灯泡的状态,并在必要时恢复。有一个 Node.JS script on GitHub 似乎正是这样做的。如果您想 运行 将此作为独立解决方案,请购买 Raspberry Pi(或类似的东西)。
基于 SDK 的解决方案的一个问题是延迟:在我的设置中,识别灯泡打开需要 3-9 秒,识别灯泡关闭需要大约 20-30 秒.
这是我的 Python 代码,用于监控灯泡的可达性,使用 python-hue-client:
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()