如何把HA中窗帘“stop”状态反馈到node-red?

在HA中用template cover模板生成的窗帘想在node-red中发“open/closed/stop”三个命令进行简单控制,但是HA中窗帘控制按钮“stop”状态无法在node-red中输出任何数据,请问各位大佬,如何解决这个问题?

你要按stop,看看nr节点输出什么信息啊,如果了stop,都没有输出信息,你看看是不是homeassistant里面的设置有问题。

萝卜老大,按了“stop”在nr中没有任何输出。HA中要怎样设置?能给个详细说明吗?谢谢!
我是按官方文档来设置的,下图三个脚本就做了三个字符串:open、closed、stop

我知道了,stop是一个动作,不是一个states,你的states只有关闭和打开两种状态。你其实是不是想stop表示,窗户不开不关的状态?

萝卜老大,我只要在node-red中收到在HA中按下“stop”的反馈就行,任何反馈都可以,关键是什么都没收到。收到“stop”按钮反馈之后,我会在node-red中发一个窗帘停止的命令,不管当前窗帘是处于打开–>关闭中的状态,还是窗帘是处于关闭–>打开中的状态。就是任意状态下窗帘都可以执行停止动作。
我试过另外一种实现方法,就是在HA中调用一个shell_command命令,但是这个命令与node-red中的tcp端口有冲突(在node-red中是通过tcp端口传输命令的),当node-red连上tcp端口之后,命令不起作用,只有停用node-red中的tcp端口,命令才起作用。
或者还有其他更好的做法吗?这个问题折腾了我两天了,目前没有任何头绪。

关键点在于这个stop只是一个动作命令,不是一个状态,这个比较麻烦。
你是不是有个门磁在监控这个?你可以设置门磁打开之后停留多久,然后就是停止啊。

没有装门磁,只是想单独发命令简单控制窗帘。

我得想想 :joy:

好的,那就麻烦萝卜大佬了,新手第一次发帖求助,不容易啊。 :joy:

你在homeassistant的开发者工具里面,找到这个设备,你在homeassistant按一下stop看看,这个设备的状态有没有变化

萝卜老大,“stop”没有任何变化,只有按“open”和“close”有状态变化。

那也就是说,这个类型的设备是没有stop这个状态的。

是的,那么如果要实现我想要的反馈,有其他办法吗?

萝卜老大,我也在HA官方论坛求助了,有人给了如下建议:

If you only need to somehow transfer STOP information to NodeRed, maybe it’s enough to listen to events. If you are lucky, HA maybe sends some events when calling services. Intercept them and react as you wish. Other method is to use svc2evnt to send NR a message instead of calling scripts. Then you can do whatever you want in NR (I mean control curtain, create own sensor etc)

翻译:如果你只需要以某种方式将STOP信息传递给NodeRed,也许倾听事件就足够了。如果你很幸运,HA可能会在调用服务时发送一些事件。拦截它们,并按你的意愿做出反应。另一种方法是使用svc2evnt发送NR信息,而不是调用脚本。然后你可以在NR中做任何你想做的事情(我的意思是控制窗帘,创建自己的传感器等)。

麻烦帮忙看看回复有帮助吗?

HA可能会在调用服务时发送一些事件
这个应该可以的,我没有用过事件这个,你找找看在哪可以调用?

好吧,我努力,感谢你的回复。 :sweat_smile:

用mqtt生成窗帘吧,然后监听相应主题

mqtt没用过。 :cry:明天尝试下,谢谢大佬!不知道有没有这方面的教程。

完整的窗帘支持是有个position属性的,position=0关闭 100打开,走到一半stop时position当然也是只有一半。

看官网的mqtt窗帘的集成配置就是了