米家动作传感器以人在为触发条件时对某项动作只执行一次的方法
背景介绍
众所周知,米家智能场景的执行逻辑中必须有一个触发条件才能成立。
当我们把动作与环境光传感器的"有人移动"作为触发条件时,该项自动化其实是每一个传感器上报间隔都会触发一次的(以青萍动作与环境光传感器为例这个间隔可以达到10s一次)。
一般情况下我们是感受不到这种不便的。例如自动化"当有人移动时打开台灯"执行时,由于台灯不会被重复打开,而且大部分传感器上报间隔较长(例如小米人体传感器2的最短上报间隔为30s)所以我们几乎是无感的。
问题描述
但现有如下场景:
- 宿舍有台灯一盏和彩色灯带一条。我需要在传感器第一次探测到移动时将台灯和灯带打开,并给台灯设置初始模式,灯带设定初始亮度和颜色。
- 在工作过程中传感器能探测到我的情况下,我偶尔需要调整台灯模式和灯带颜色。
- 离开座位后5分钟,台灯自动关闭,灯带更换一种预设颜色。
- 离开座位后10分钟,灯带亮度变换,更换一种预设颜色。
- 离开座位后30分钟,灯带和台灯均关闭。
- 可以通过一个手动场景来中断以上场景并立刻关闭台灯和灯带。
这个时候"有人移动时打开台灯和灯带并预设模式"的指令就出现问题了。
这种设置会导致在工作过程中更换台灯和灯带模式出现bug,只要传感器一探测到我的移动,台灯和灯带就会被置为初始模式。
在我的动作传感器上报间隔为10s的情况下,完全无法正常更换台灯和灯带模式。
这时候就得想个办法让初始化的过程只执行一次。
解决方案
解决方案步骤如下:
- 新建一个手动场景来执行打开台灯和灯带并设置初始模式的操作。
- 新建一个自动化用来启动第1步中设定的手动场景,触发器为动作传感器的有人移动。
- 在手动场景的最后关闭步骤2设置的自动化。
- 在后续执行的自动化(5分钟无人)和手动场景(手动关闭所有灯)执行的最后打开步骤2设置的自动化。
完整的台灯与灯带控制流程
这里我把整套灯具自动化放出来,大伙可以给一下优化建议或者拿来参考。
PS:图中的小爱音响自定义指令均为灯带控制指令。
小白第一次发文。大佬轻喷,欢迎留言讨论。