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

 找回密码
 立即注册
查看: 1032|回复: 11

[流程系列] NODERED的HOMEKIT插件如何设定输入参数仅为状态参数

[复制链接]

20

主题

161

帖子

1201

积分

金牌会员

Rank: 6Rank: 6

积分
1201
金钱
1040
HASS币
0
发表于 2022-11-11 11:55:16 | 显示全部楼层 |阅读模式
本帖最后由 aprking 于 2022-11-13 08:45 编辑

一直有个疑问,NODERED中如果在前端events:state从HA服务输入设备状态至HOMEKIT插件,如图所示,理论上homekit获得的输入状态只是为了同步给homekit,而无需输出"debug03"这个状态。但实际测试时homekit输出端也会同步输出这个状态,这就导致了当homekit插件每操作一次(例如“打开”命令),设备又会反馈到events:state状态(例如“打开”命令),这样就会产生一个无效的死循环。
请教各位大佬,如何设定输入参数仅为状态参数,这个参数影响的范围只在homekit的输入端“debug01“、“debug02”,输出端"debug03"只接受homekit自身控制,而不受events:state状态操控!


EVENTS-STATE.jpg
测试.jpg
回复

使用道具 举报

20

主题

161

帖子

1201

积分

金牌会员

Rank: 6Rank: 6

积分
1201
金钱
1040
HASS币
0
 楼主| 发表于 2022-11-13 09:01:15 | 显示全部楼层
木有大佬关注解答啊
回复

使用道具 举报

20

主题

161

帖子

1201

积分

金牌会员

Rank: 6Rank: 6

积分
1201
金钱
1040
HASS币
0
 楼主| 发表于 2022-11-14 10:18:17 | 显示全部楼层
依然关注此话题,并详细说明思维盲点!
114833hc93q98kxktz86d1.jpg
回复

使用道具 举报

6

主题

36

帖子

553

积分

高级会员

Rank: 4

积分
553
金钱
517
HASS币
0
发表于 2022-11-14 20:00:12 | 显示全部楼层
你可以把你最原始的需求说出来
参见:https://xyproblem.info/
回复

使用道具 举报

3

主题

120

帖子

1064

积分

金牌会员

Rank: 6Rank: 6

积分
1064
金钱
944
HASS币
0
发表于 2022-11-14 20:59:12 | 显示全部楼层
我理解不应该是死循环,因为状态发生变化之后,第二次状态应该和前面保持一致。

就像一个开关,通过其他方式打开了,一定会触发一个事件,更新homekit里面的状态变为开, 这个也必然会有一个时间从homekit出来,但是最多它又设置了一个开的状态。

但是第二次设置开的状态的时候,就不会再触发状态变化的事件了,因为状态没变,都是开。
回复

使用道具 举报

20

主题

161

帖子

1201

积分

金牌会员

Rank: 6Rank: 6

积分
1201
金钱
1040
HASS币
0
 楼主| 发表于 2022-11-14 22:23:33 | 显示全部楼层
本帖最后由 aprking 于 2022-11-14 22:25 编辑
scabbers 发表于 2022-11-14 20:59
我理解不应该是死循环,因为状态发生变化之后,第二次状态应该和前面保持一致。

就像一个开关,通过其他方 ...

感谢楼上参与讨论。楼上大佬的回答引出两个话题:1、这个确实是无效循环,从HomeKit中二次出来的“打开”命令是不应该出现的,就像ha中定义的四种模式-单点、重启、队列、并行,这里确实出现了一个不可控的无效的循环,在很多情况下会导致不希望的情况发生。2、前端输入的状态更多情况下是其它途径、例如实体开关或ha中不是nodred流中操作后的结果同步到了nodred流。给HomeKit的只是通知状态改变了,如果HomeKit也照样再执行一次,产生了多次循环,这个循环可能会导致多次并行、重启、队列等我们肯定不希望的结果,所以我才觉得应该想办法让前端的输入只是通知,而不能再次输出执行的原因所在。这个回答同样回复楼上的楼上!
回复

使用道具 举报

0

主题

5

帖子

82

积分

注册会员

Rank: 2

积分
82
金钱
77
HASS币
0
发表于 2023-9-7 23:47:09 | 显示全部楼层
同样有此问题,楼主最后怎么解决了?
回复

使用道具 举报

20

主题

161

帖子

1201

积分

金牌会员

Rank: 6Rank: 6

积分
1201
金钱
1040
HASS币
0
 楼主| 发表于 2023-9-10 14:34:40 | 显示全部楼层
xunuo 发表于 2023-9-7 23:47
同样有此问题,楼主最后怎么解决了?

过滤掉了,具体方法看我别的贴子!
回复

使用道具 举报

0

主题

18

帖子

222

积分

中级会员

Rank: 3Rank: 3

积分
222
金钱
204
HASS币
0
发表于 2023-11-20 11:47:57 | 显示全部楼层
aprking 发表于 2023-9-10 14:34
过滤掉了,具体方法看我别的贴子!

请问楼主怎么过滤的?帖子标题是什么?
回复

使用道具 举报

20

主题

161

帖子

1201

积分

金牌会员

Rank: 6Rank: 6

积分
1201
金钱
1040
HASS币
0
 楼主| 发表于 2023-11-21 17:27:17 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-2 06:51 , Processed in 0.058688 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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