『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 12844|回复: 7

[基础教程] espeasy利用Dummy Device实现人体传感器延迟重复触发

[复制链接]

4

主题

37

帖子

420

积分

论坛积极会员

积分
420
金钱
383
HASS币
0
发表于 2021-3-15 23:49:38 | 显示全部楼层 |阅读模式
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




剪贴板01.jpg
剪贴板02.jpg
回复

使用道具 举报

35

主题

984

帖子

4744

积分

论坛元老

Rank: 8Rank: 8

积分
4744
金钱
3760
HASS币
20
发表于 2021-3-16 00:56:36 来自手机 | 显示全部楼层
支持分享,准备点知识加传感器
回复

使用道具 举报

4

主题

139

帖子

1265

积分

金牌会员

Rank: 6Rank: 6

积分
1265
金钱
1126
HASS币
0
发表于 2021-3-16 08:59:54 | 显示全部楼层
学习了,感谢分享。
回复

使用道具 举报

6

主题

226

帖子

3723

积分

论坛元老

Rank: 8Rank: 8

积分
3723
金钱
3497
HASS币
0
发表于 2021-3-16 10:10:01 | 显示全部楼层
这个传感器的监控范围不太好控制 楼主你是怎么弄的啊?
回复

使用道具 举报

7

主题

201

帖子

1095

积分

论坛积极会员

积分
1095
金钱
894
HASS币
0
发表于 2021-3-16 16:59:43 | 显示全部楼层
谢谢分享,有时间改一下我的~现在也是高频触发,不像米家的有1min延迟
回复

使用道具 举报

2

主题

11

帖子

176

积分

注册会员

Rank: 2

积分
176
金钱
165
HASS币
0
发表于 2021-3-16 21:54:20 | 显示全部楼层
小白学习一下,表示很多看不懂,如果能有更傻瓜式懂教程就更好了
回复

使用道具 举报

4

主题

37

帖子

420

积分

论坛积极会员

积分
420
金钱
383
HASS币
0
 楼主| 发表于 2021-3-16 23:57:59 | 显示全部楼层
chzyh 发表于 2021-3-16 10:10
这个传感器的监控范围不太好控制 楼主你是怎么弄的啊?

这个感应可以穿墙,距离大约7m,金属遮挡后不会触发感应。
距离可以在背后焊点加电阻调节。

不过在rule里设置,更方便有效。
回复

使用道具 举报

4

主题

37

帖子

420

积分

论坛积极会员

积分
420
金钱
383
HASS币
0
 楼主| 发表于 2021-3-17 00:18:54 | 显示全部楼层
本帖最后由 guanine 于 2021-3-17 00:20 编辑
kingtao1024 发表于 2021-3-16 16:59
谢谢分享,有时间改一下我的~现在也是高频触发,不像米家的有1min延迟

由于缺省情况下,模块触发后2秒即恢复。如果不停感应,也没必要。
改进下
1. 在一个时间单位内(30秒吧),第n次感应到活动,才发送MQTT到HA,减少误触发的 可能性,这个模块灵敏度挺高。
2. 每次触发都会激活定时器timer(timer序号均相同,定时30秒),那么只有在触发 之后30秒 内没有再次触发,那个Dummy的值才会归零,并MQTT到HA。效果相当于检测到连续活动 时,会一直保持HA为“有人”的状态

Rule如下。我再观察下,是否有BUG

On RCWL#State do
  TaskValueSet,6,1,([act#val]+1)
  timerSet,1,30
  if [act#val]>3
    Publish /%sysname%/RCWL/State,1
  endif
endon

On Rules#Timer=1 do
  TaskValueSet,6,1,0
  Publish /%sysname%/RCWL/State,0
endon
剪贴板03.jpg
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-27 00:18 , Processed in 0.065688 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表