我试着做些简单的事情。当有人打开一个色调灯,如果是在下午6点以后,把灯设置为一个特定的颜色。
我一直无法找到一种方法来做到这一点,而不需要不断地进行投票(这似乎很蹩脚)。
主色调iOS应用程序有警报器,但只有当灯打开时才会发出警报。因此,当晚上7点亮灯时,应用程序的警报器也无法在下午6点之后设置特定的颜色
发布于 2016-11-11 20:07:50
API现在已经更新以支持这一点。具有以下条件的规则可以存储在桥上,因此不需要从应用程序中保持轮询。第一个条件指定规则触发的时间,第二个条件指定一定的光必须打开,第三个条件指定光必须从关闭后改变。
“地址”:“/config/localtime”、“运算符”:“in”、"value":"T18:00:00/T23:00:00“
“地址”:“/light/1/state/on”,"operator":"eq","value":"true“
“地址”:“/light/1/state/on”,"operator":"dx“
发布于 2015-11-24 03:17:50
但是一个使用API的Hue应用程序已经在轮询桥,不管它的心跳是什么。因此,当心跳触发时,您读取缓存,检查灯光的状态,并存储它的“可达”值,如果光线物理关闭,这个值是假的,如果它是物理打开的,则为true。下一次通过循环,再检查一次。如果它是假的,现在是真的,宾果:灯刚刚打开,所以发送一个命令来设置你想要的颜色。
因为API使用的是基于心跳的轮询,而不是回调或中断,所以这是检测外部更改的最佳方法(比如物理上打开或关闭的灯,或者由其他应用程序、IFTTT规则等更改的灯)。您确实可以按类型控制资源的心跳间隔,因此您可以更频繁地轮询灯,以便能够更快地做出反应。
https://stackoverflow.com/questions/33715087
复制相似问题