找回密码
 立即注册

微信扫码登录

搜索
查看: 3436|回复: 11

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

[复制链接]

22

主题

165

回帖

1571

积分

金牌会员

积分
1571
金钱
1384
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
回复

使用道具 举报

22

主题

165

回帖

1571

积分

金牌会员

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

使用道具 举报

22

主题

165

回帖

1571

积分

金牌会员

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

使用道具 举报

22

主题

165

回帖

1571

积分

金牌会员

积分
1571
金钱
1384
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也照样再执行一次,产生了多次循环,这个循环可能会导致多次并行、重启、队列等我们肯定不希望的结果,所以我才觉得应该想办法让前端的输入只是通知,而不能再次输出执行的原因所在。这个回答同样回复楼上的楼上!
回复

使用道具 举报

22

主题

165

回帖

1571

积分

金牌会员

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

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

使用道具 举报

22

主题

165

回帖

1571

积分

金牌会员

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

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-10-19 03:56 , Processed in 0.053320 second(s), 10 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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