iso-lib / node-red-contrib-aliyun-living

MIT License
1 stars 4 forks source link

无法区分 状态更新与请求更改 #1

Open xuefer opened 2 years ago

xuefer commented 2 years ago

https://github.com/iso-lib/node-red-contrib-aliyun-living/blob/cb3f26f2c3ee6a2c85a792435fd6ee99bbfc36da/living.js#L15 ha -> aliyun -> ha

node-red 把ha的状态发给aliyun,aliyun节点又把状态返回回来了。这个一来一回的延迟期间如果有状态变化(比如窗帘滑动中)并非用户请求改变状态,容易混淆以为是用户通过 aliyun 要求设置状态

xuefer commented 4 months ago

删除 node.send(msg); 这块可解决

iso-lib commented 4 months ago

删除 node.send(msg); 这块可解决

最开始版本是没有加 node.send(msg); 但会有一个问题,因为一部分人是从客户端(云智能app)直接控制本节点,并不通过node-red-到本节点 当在云智能app发送控制指令后,比如开灯,本节点需要将指令发出来,node.send(msg),以供后面的开灯流程使用. 考虑这点,增加了这个send. 当然如果用不上可手动删除.或者等我有空时做个选项开关.

xuefer commented 4 months ago

你好,我测试了下灯发现云智能app里开关能通知到node-red里、进而控制ha里的设备。包括用天猫精灵也是

iso-lib commented 4 months ago

你好,我测试了下灯发现云智能app里开关能通知到node-red里、进而控制ha里的设备。包括用天猫精灵也是

记错了,应该是当时我的需求是在本节点前面有个mqtt out的节点,要传递msg.topic参数到本节点后面的mqtt in,来控制mqtt协议的开关,至于为啥要把2种控制放在一行里,原本是想通过其他途径改变了状态,也想反映到云智能APP,包括天猫精灵APP上去,让各个地方的设备状态是统一的。虽然现在我也没用这种方法了,不过一直也没改动。 这个下次有空就改了,或者加个选项开关。

xuefer commented 4 months ago

明白,如果实在需要这个功能建议不要加开关而是增加一个输出。或者建议直接把在node-red界面里使用者自己把输入那边连到输出后的节点去。现在确实无法区分导致需要手工修改代码

iso-lib commented 4 months ago

明白,如果实在需要这个功能建议不要加开关而是增加一个输出。或者建议直接把在node-red界面里使用者自己把输入那边连到输出后的节点去。现在确实无法区分导致需要手工修改代码

增加一个输出好,1号只输出阿里云返回的信息,2号输出所有msg,你写把,PR过来

xuefer commented 3 months ago

明白,如果实在需要这个功能建议不要加开关而是增加一个输出。或者建议直接把在node-red界面里使用者自己把输入那边连到输出后的节点去。现在确实无法区分导致需要手工修改代码

增加一个输出好,1号只输出阿里云返回的信息,2号输出所有msg,你写把,PR过来

你太高看我了,我没写过node-red插件,只会删那句