Ich habe zum Einstieg gleich mal eine ziemlich umfangreiche Fragestellung:
Ich bekomme in HA über ein ESP32 (LilyGo) und darauf installiertem openMQTTgateway mehrere Sensoren für eine Bresser-Wetterstation geliefert.
Anscheinend wird jedoch die ID des ESP32 nicht korrekt interpretiert.
Über den MQTT-Explorer sehe ich, dass folgendes Topic geliefert wird:
home/LilyGo/RTL_433toMQTT/Bresser-6in1/0/-1760026362
mit den Daten:
{
“model”: “Bresser-6in1”,
“id”: -1760026362,
“channel”: 0,
“battery_ok”: 1,
“temperature_C”: -3.6,
“humidity”: 97,
“sensor_type”: 1,
“wind_max_m_s”: 1,
“wind_avg_m_s”: 1,
“wind_dir_deg”: 292,
“uv”: 44.4,
“startup”: 1,
“flags”: 0,
“mic”: “CRC”,
Es werden dann auch eine Reihe entsprechender Sensoren unter dem Topic
homeassistant/sensor angelegt:
Z.B. homeassistant/sensor/Bresser-6in1-0–1760026362-rain_mm/config
Allerdings scheint dort der Eintrag state_topic falsch zu sein:
{
“stat_t”: “+/+/RTL_433toMQTT/Bresser-6in1/0//1760026362”,
“dev_cla”: “precipitation”,
“unit_of_meas”: “mm”,
“name”: “Rain”,
“uniq_id”: “Bresser-6in1-0–1760026362-rain_mm”,
“val_tpl”: “{{ value_json.rain_mm | is_defined }}”,
“stat_cla”: “measurement”,
“device”: {
“ids”: \[
“Bresser-6in1-0–1760026362”
\],
“cns”: \[
\[
“mac”,
“Bresser-6in1-0–1760026362”
\]
\],
“mdl”: “Bresser-6in1”,
“name”: “Bresser-6in1-0–1760026362”,
“via_device”: “LilyGo”
}
}
Statt dem “-” (Minus) wird ein “/” eingetragen.
Ich vermute, dass darum bei Verwendung dieses Sensors keine Werte angezeigt werden.
Meine Frage 1: wie und wo kann ich die korrekte ID bei dem Sensor ändern?
Ich habe dann den Sensor in der configration.yaml mehr oder wenig mit Folgendem überschrieben:
mqtt:
- sensor:
state_topic: “+/+/RTL_433toMQTT/Bresser-6in1/0/-1760026362”
value_template: “{{ (value_json.rain_mm | is_defined) - 0.4 }}”
unique_id: Bresser_5_in_1_Regen
name: “Niederschlag”
state_class: measurement
unit_of_measurement: mm
Das funktioniert, ich bekomme den Wert geliefert. (Die Bresser liefert immer 0,4 mm als Standardwert, daher die Korrektur).
Ich müsste mit den Daten noch mehr machen, komme jetzt aber nicht mehr weiter, denn Folgendes funktioniert nicht:
mqtt
- sensor:
state_topic: “+/+/RTL_433toMQTT/Bresser-6in1/0/-1760026362”
value_template: >
“{{ (value_json.rain_mm | is_defined) - 0.4 }}”
unique_id: Bresser_5_in_1_Regen
name: “Niederschlag”
state_class: measurement
unit_of_measurement: mm
Geschweige denn:
mqtt:
- sensor:
state_topic: “+/+/RTL_433toMQTT/Bresser-6in1/0/-1760026362”
value_template: >
“{
{ (value_json.rain_mm | is_defined) - 0.4 }
}”
unique_id: Bresser_5_in_1_Regen
name: “Niederschlag”
state_class: measurement
unit_of_measurement: mm
Wobei die Syntax akzeptiert wird, nur kommen keine Werte mehr.
Frage 2: Warum? Wo liegt mein Denkfehler?
by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)
s.a.: (Neues Update & Features - Hier in der Community 🫶)