标签:#<标签:0x00007FC415E08630>

完美,谢谢!

编辑:现在收到很多这样的消息:接收到未知的RF命令:347343

这是确切的说法,它收到了一个未知的RF命令:它收到了347343在您定义的字典中找不到它。

很抱歉劫持此线程,但我正在考虑购买Sonoff RF桥,我很好奇是否仍然是运动传感器和门 /窗口开关等产品的建议。

无需后悔,只需开始一个新主题即可。这是专门用于接收多路复用数据的策略,例如从Sonoff RF桥(但适用于通过一个MQTT主题多路复用数据的任何设备)。如果您想讨论实际设备的利弊,则最好是一个新主题。

1喜欢

伟大的。出色的解决方案。谢谢

嗨,我测试了您的配置,效果很好,谢谢
我不知道如何使用一个以上的Sonoff RF桥实施

谢谢!

要使用多个桥梁,您可以在MQTT配置中给他们所有相同的主题。
最接近的人会在没有重复问题的情况下拾取信号。
我有3个使用此解决方案的设置,因为它已发布并且运行良好。

嗯,我也有3个桥梁,但每个桥都有单独的主题。我担心,如果我以自己的方式配置了整个属性的按钮,则将发现整个属性的按钮。由于大多数人切换了我期望的东西,因此随着两条或多个MQTT消息的收到,这会翻译为关闭。那不会发生吗?

我只使用桥作为传感器。就我而言,这根本不是问题。
我建议你尝试。

您会认为我会有更多时间与HA一起玩,卡在家里,但这只是12个小时的工作日。感谢您的建议,将在周末尝试。

我的两个桥梁有不同的主题,但它们使用相同的demux-script。

感谢您!

1喜欢

干草我给了我的同一主题,当时我有3个话题,这使编码较小一点

很高兴它为您工作!

我只有一座桥,但是如果它们都指出与其他人指出的相同的输出话题,我认为它应该起作用。

另外,有了不同的桥梁主题,为每个桥梁做这样的事情应该有效:

self.mqtt_bridge1_topic =“ tele/tasmota_rf_bridge1” self.mqtt_bridge2_topic =“ tele/tasmota_rf_bridge2” self.bridge1_name =“ rf_bridge1” rf_bridge1“ self.bridge.bridge2_name =”,topic ='homeassistant/sensor/' + self.bridge1_name +'/config',payload ='{“ name”:“' + self.bridge1_name +'”,“ state_topic”:' + self.mqtt_bridge +'topic +' +'/'/selflwt“,” json_attributes_topic“:”' + self.mqtt_bridge1_topic +'/result'}',retain = true)self.call_service(“ mqtt/publish”,topic ='topic ='homeassistant/homeassistant/senser/senser/senser.bridge.bridge.bridge.bridge2_name +'//'//'//config',paryload ='{“ name”:“' + self.bridge2_name +'”,“ state_topic”:“' + self.mqtt_bridge2_topic +'/lwt”,“ JSON_ATTRIBUTES_TOPIC_TOPIC”:结果“}',retain = true)#聆听每个桥传感器self.listen_state(self.on_code_received,“传感器”。“ + self.bridge1_name,attribute =“ all”)self.listen_state(self.on_code_code_code_code_received,sensor。+ self.bridge2_name,attribute =“ all”)

该代码已经同时拒绝输入,但是我不确定各种桥梁之间是否会稍微偏离时间。如果没有,添加更多的智能会不会太艰难了。

好,谢谢。我会尝试。现在我正在测试其他配置。

我发现您的策略2非常有趣,因此根据您的工作,我创建了一个使用本地家庭助理的版本19463331伟德国际脚本而不是python_script。

自动化部分几乎与您相同。您需要将此代码列入Automations.YAML或自动化部分:

- 别名:rfbridge_demultiplexer触发器: - 平台:MQTT主题:tele/sonoffrf/结果条件: - 条件:template value_template:“ {(trigger.payload_json已定义))和(trigger.payload_jjson.rfreceived,定义了)和(定义了)和(定义了).rfreceived.data已定义)}}}“操作: - 服务:script.rf_mqtt_publish data_template:code:” {{trigger.payload_json.rfreceived.data}}}}}}}}}}}}}}aaaaaa“:{” topor”:“ sensor1”,“有效载荷”:“ on”,“ on”,“ retain”:true},“ bbbbbbb”:{“ topic”:“ sensor1”,“有效载荷”,“ off”,“ off”,“保留”,“保留”,““:true},“ cccccc”:{“ topic”:“ sensor2”,“有效载荷”:“ on”,“ on”,“ retain”:false},“ dddddd”:{“ topic”:“ sensor3”:“ sensor3”,“有效载荷”:“ on”,“ retain”:false}}'}}}

它没有调用您的python脚本,而是调用本地家庭助手脚本名称rf_mqtt_publish并使用19463331伟德国际字段通过配置。这是要放入脚本的脚本部分。YAML或您的脚本部分:

rf_mqtt_publish:别名:rf_mqtt_publish字段:{“代码”:{},“ topor_base”:{},“ list”:{}}}序列: -  servicence: -  service: -  service:mqtt.publish data_templait|from_json-%} {{topor_base〜l [code] .topic if((l [code]定义)和(l [code] .topic是定义的))else topip_base〜'unknown'}}有效载荷:>  -  {%{%{%- 设置L =列表|from_json-%} {{l [code] .payload如果((定义了[code])和(l [code] .pay load定义))else code}}}}}}}}}} recodein:>  -  {% -  set l = list |from_json-%} {{l [code] .retain if(((l [code]定义))和(l [code] .retain是定义的))else false}}}}} QOS:0

然后,您可以像您一样定义二进制传感器:

binary_sensor: - 平台:MQTT名称:'浴室门'state_topic:'home/sensor1'device_class:门 - 平台:MQTT名称:'Callway Motion'state_topic:'HOME/SENSSOR2'off_delay:5 device_class:5 device_class:Motion_class:Motion_class:Motion_class:Motion_class:Motion_class:Motion_class:Motion_Class:

当然,您需要使用自己的主题和配置来调整此代码。

感谢分享。
有选择总是很棒。
您能告诉我们您的方法的优势是什么?
我发现python_script脚本因为a)您不太有限,可以编写更紧凑和可读的代码,b)如果更改它,则无需重新加载任何内容,它会自动拾取。

感谢您发布您的版本。

我希望澄清使用合格形容词“本地”的使用。python_script是作为脚本的家庭助手的“本地”。19463331伟德国际实际上,python_script集成提供了一个优势,如果您修改python_script,与脚本不同,则不必使用“重新加载脚本”(有人可能会争辩说这使其“更本地”)。

然而,最好有替代方案,再一次,您花时间在这里分享它。

就像您说的那样,这只是为人们提供另一种选择。在此示例中,还有一个教育部分,可以向人们展示如何使用脚本和字段。

a)我知道,但是对于一些不在Python编程的人来说,修改家庭助理脚本以满足那里的需求可能比Python脚本更容易。19463331伟德国际同样,Python脚本设置可能会使某些人感到困惑。

b)通常,当您更改RF配置时,通常还需要在配置文件中创建二进制传感器或其他内容。因此,无论如何您都必须重新启动您的家庭助理服务器。19463331伟德国际另外,您可以重新加载自动化和脚本配置,而无需重新启动家庭助理服务器。19463331伟德国际

我的方法的一个优点是将配置保持简单,默认情况下,家庭助手中存在的内容,而无需创建Python_script配置和子目录。19463331伟德国际

我同意您的看法,本地可能不是适当使用的术语。也许是类似的默认配置文件可能更合适。

我方法的主要目标是在不添加默认设置中不添加不在的配置设置的情况下做某事(即python_script)。我同意您的方法更本地化。