根据是否有人做灯控(独立办公室)
前置条件
此能力需要先登录
需求
某客户独立办公室安装了人体感应器,当检测到人员离开后,等待 30 分钟,关闭办公室灯光。
分析
当人体感应器
上报人员离开事件时,我们可以启动一个 30 分钟的定时器
,当定时器超时后,关闭灯光。
注意
此需求有一个关键点,就是当人员再次进入办公室时,要取消 30 分钟的定时器。否则就会出现一个尴尬的情况,由于之前离开时启动了一个 30 分钟的定时器,明明办公室还有人,灯光却被关闭了。
陷阱
也许我们会这样思考:当定时器超时的时候,我们再判断一下当前是否有人不就可以了吗?这样会有一个时间上的误差。假设用户离开后,在第 29 分钟再次进入办公室,然后立即离开,这时由于之前的定时器没有取消,灯光会在第 30 分钟关闭。这不满足原始需求,我们期望的是,当用户离开后,等待 30 分钟再关闭灯光。
方案
以下是鸿图方案:
注意我们新建了一个变量来保存定时器,关于变量的使用,请参考变量章节。