我在 Wemos D1 mini 上安装了最新版本的 Tasmota,并评论了 ADC 语音以读取 AnalogA0 输入值。 该值在主页中正确给出,范围从 0 到 1024。
09:14:01 MQT: tele/wemos_3/STATE = {"Time":"2019-03-17T09:14:01","Uptime":"0T00:40:20","SleepMode":"Dynamic","Sleep":50,"LoadAvg":38,"POWER":"OFF","Wifi":{"AP":1,"SSId":"In_medio_stat_virtus-2GHz","BSSId":"A0:63:91:E0:A4:87","Channel":1,"RSSI":98}}
09:14:01 MQT: tele/wemos_3/SENSOR = {"Time":"2019-03-17T09:14:01","ANALOG":{"A0":1024}}
当我进入控制台时,我可以看到每 5 分钟就会触发一个带有模拟值的新 MQTT 主题。 我想取这个值,在 Home Assistant 中报告它并转换它。
但是,首先我不明白如何提取要在 Home Assistant 中报告的值。 这是我正在使用的代码,它肯定不正确。
sensor:
- platform: mqtt
name: "Plant Humidity"
state_topic: "tele/wemos_3/SENSOR"
unit_of_measurement: '%'
value_template: "{{ value_json.A0 }}"
另一个问题是,如果您知道如何在家庭助理中直接转换此值,则该值范围从 0 到 100%,知道 1024 将是 100%。 我知道这是可以做到的,但我对此非常陌生。
最后,模拟输入连接到土壤水分传感器。 连接到同一个 Wemos 上有一个中继屏蔽。 我注意到当我打开/关闭继电器时,模拟值也会受到一点影响(例如它从 1024 变为 1018)。 这是正常的吗?
应该是value_json.ANALOG.A0
因为 A0 嵌套在模拟之下
另一个问题是关于家庭助理的支持,它涉及 jinja 模板并且不在 tasmota 领域
一千个为我的英语道歉。 我有同样的担忧,并解决了以下问题:
value_template: "{{(value_json ['ANALOG']. A0 | float * 100/1024) | round (1)}}"
因此,我可以以一种简单的方式将类似的读数转换为一个值,例如百分比,而无需使用 jinja 模板。
最有用的评论
一千个为我的英语道歉。 我有同样的担忧,并解决了以下问题:
value_template: "{{(value_json ['ANALOG']. A0 | float * 100/1024) | round (1)}}"
因此,我可以以一种简单的方式将类似的读数转换为一个值,例如百分比,而无需使用 jinja 模板。