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

 找回密码
 立即注册
楼主: xiaolongbao

[流程系列] 求助node-red 如何实现多个设备同时满足条件触发

[复制链接]

0

主题

11

帖子

94

积分

注册会员

Rank: 2

积分
94
金钱
83
HASS币
0
发表于 2022-9-21 11:44:19 | 显示全部楼层
本帖最后由 marswang 于 2022-9-21 11:45 编辑

node-red-contrib-bool-gate  可以增加一个这个节点   可以实现  and 和 or的逻辑判断
回复

使用道具 举报

1

主题

16

帖子

114

积分

注册会员

Rank: 2

积分
114
金钱
98
HASS币
0
 楼主| 发表于 2022-9-21 13:50:52 | 显示全部楼层
marswang 发表于 2022-9-21 11:44
node-red-contrib-bool-gate  可以增加一个这个节点   可以实现  and 和 or的逻辑判断
...

好的谢谢~回家了试试
回复

使用道具 举报

1

主题

16

帖子

114

积分

注册会员

Rank: 2

积分
114
金钱
98
HASS币
0
 楼主| 发表于 2022-9-21 14:10:08 | 显示全部楼层
aprking 发表于 2022-9-21 00:47
分别把四个温控器的某个你需要的值var,然后用link in\link out连入function中做触发条件即可。
例如四个温 ...

温控器里面有个状态 status:(0 停止工作或 1工作中)
如果我想输出其中一个温控器的这个状态值,是不是就是就是这样呢?
var zhuangtai = msg.payload......路径;
msg.payload = zhuangtai
if  (msg.payload === 0){
     return msg;
}else{
     return null;
}
回复

使用道具 举报

20

主题

161

帖子

1201

积分

金牌会员

Rank: 6Rank: 6

积分
1201
金钱
1040
HASS币
0
发表于 2022-9-21 15:50:10 | 显示全部楼层
xiaolongbao 发表于 2022-9-21 14:10
温控器里面有个状态 status:(0 停止工作或 1工作中)
如果我想输出其中一个温控器的这个状态值,是不是 ...

如果多个温控器,须在这个之前在各自的温控器的流里分别var好不同的zhuangtai1、zhuangtai2.。。再linkin-out过来!
这样才不会混乱,最后在这个if  (msg.payload === 0)可以加入 && 来实现与或逻辑值!
回复

使用道具 举报

1

主题

16

帖子

114

积分

注册会员

Rank: 2

积分
114
金钱
98
HASS币
0
 楼主| 发表于 2022-9-21 17:06:39 | 显示全部楼层
aprking 发表于 2022-9-21 15:50
如果多个温控器,须在这个之前在各自的温控器的流里分别var好不同的zhuangtai1、zhuangtai2.。。再linkin ...

好的,谢谢,回家试试看
不明白的地方,再求助,还感谢不吝赐教
回复

使用道具 举报

0

主题

34

帖子

174

积分

注册会员

Rank: 2

积分
174
金钱
140
HASS币
0
发表于 2022-9-23 23:40:54 | 显示全部楼层
四个condition都满足,trigger设备关机。 这个需求的重点其实不在于条件满足的判断逻辑,而在于当任意一个condition出现不满足条件时,是否要再次trigger设备做一次toggle操作。这个逻辑比前者稍显困难。

从简化问题角度,没必要把四个温控器合并为同一个flow ,增加问题复杂度。

如果是我处理这个flow ,我会增加一个共享的context变量,假设变量名称为 FINAL STATUS,变量为 flow 或global  level都可以。每个温控器单独一个flow,处理逻辑是 ,当温控器满足条件,设置FINAL STATUS 为true,反之为false。每个温控器自己的频率采集环境温度数据,互不影响。 (如果设置为flow level的context,四个flow需要在同一个tab页编辑)

然后再写一个flow, 处理逻辑是 间隔 interval ,判断context变量FINAL STATUS值是否为ture,如果为true ,关闭设备,反之打开设备。

特别提醒,使用context需要注意的是 ,变量是保持在内存当中,当node-red重启或者断电时,context变量会不存在。解决此问题是 ,可以将context写入数据库,或者是写入文件系统。

评分

参与人数 1金钱 +5 收起 理由
aprking + 5

查看全部评分

回复

使用道具 举报

1

主题

16

帖子

114

积分

注册会员

Rank: 2

积分
114
金钱
98
HASS币
0
 楼主| 发表于 2022-10-1 16:12:22 | 显示全部楼层
onions 发表于 2022-9-23 23:40
四个condition都满足,trigger设备关机。 这个需求的重点其实不在于条件满足的判断逻辑,而在于当任意一个c ...

之前方法折腾半天还是不行,找不到原因,与或门插件不会用。。。
最后,换了个思路,米家里面设置四个温控器,达到都停止工作的时候,触发一个米家插座停,任意温控器工作,触发插座开。。。
然后插座开关状态通过ha,再到nr,向壁挂炉发送关停采暖到指令。。。
我这个虽然成功了,但办法确实笨
回复

使用道具 举报

1

主题

16

帖子

114

积分

注册会员

Rank: 2

积分
114
金钱
98
HASS币
0
 楼主| 发表于 2022-10-1 16:16:48 | 显示全部楼层
marswang 发表于 2022-9-21 11:44
node-red-contrib-bool-gate  可以增加一个这个节点   可以实现  and 和 or的逻辑判断
...

node-red-contrib-bool-gate 完全不会操作这个插件,门都没摸到 不知道怎么设置这个
回复

使用道具 举报

1

主题

87

帖子

926

积分

高级会员

Rank: 4

积分
926
金钱
839
HASS币
0
发表于 2023-2-16 13:32:30 | 显示全部楼层
xiaolongbao 发表于 2022-10-1 16:16
node-red-contrib-bool-gate 完全不会操作这个插件,门都没摸到 不知道怎么设置这个 ...

我的方法是,ABCD四个传感器,A关闭时,把B,C,D都问一遍 你们关了没,同理B,C,D关的时候也挨个问一遍,如果都关了就触发开关。
1676525365604.png
回复

使用道具 举报

10

主题

107

帖子

536

积分

高级会员

Rank: 4

积分
536
金钱
429
HASS币
0
发表于 2023-2-16 14:43:03 | 显示全部楼层
marswang 发表于 2022-9-21 11:44
node-red-contrib-bool-gate  可以增加一个这个节点   可以实现  and 和 or的逻辑判断
...

有没有这个节点的教程?安装了,但不明白怎么用
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-23 16:18 , Processed in 1.525151 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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