ESP8266刷espeasy固件,配合RCWL-0516微波人体传感器,可以很方便的在HASS添加二进制传感器,实现人体感应。
但缺省情况下,这个延时太短了。触发后,大约2秒就会再次触发。虽然可以在RCWL-0516背面焊点加电容实现延时,但通过espeasy设置更方便。
espeasy有一类名为Dummy Device的传感器,在espaeasy的 Rule内,可以通过TaskValueSet设置其value。
那么在RCWL-0516触发时,先检查Dummy 是否为1,如等于1则说明已经触发了,那什么都不做。
如果为0,则设置Dummy 的值为1,同时启动一个定时器;
当定时器到期时,Dummy 的值重置为0;
这样,很方便的实现触发后,30秒内RCWL再次触发,不再重复上报MQTT到HASS,相当于每次触发时间30秒。
参考Rule脚本:
注:TaskValueSet,6,1,0 // 6是Dummy Device的序号,1是Dummy Device的第一个vlaue,0是设置的值
On RCWL#State do
if [act#val]=0
TaskValueSet,6,1,1
Publish /%sysname%/RCWL/State,1
timerSet,1,30
endif
endon
On Rules#Timer=1 do
TaskValueSet,6,1,0
Publish /%sysname%/RCWL/State,0
endon
|