Das Problem ist, dass auf dem identischen Topic völlig unterschiedliche JSON Objekte ausgeliefert werden.
Da hilft eine Verkettung von JSONPATH mit REGEX:
Code: Alles auswählen
Thing topic 1EMH12345678 "Z1 Hauptzähler" @ "MQTT" {
Channels:
Type string : z1_Power_curr "Z1 Power Current" [
stateTopic="tele/tasmota_F9A39A/SENSOR"
transformationPattern="REGEX:(.*_curr.*)∩JSONPATH:$[0].Power_curr"
]
Type number : z1_180 "Z1 Zählwerk 1.8.0 (in)" [
stateTopic="tele/tasmota_F9A39A/SENSOR",
transformationPattern="REGEX:(.*_in.*)∩JSONPATH:$[0].Total_in"
]
Type number : z1_280 "Z1 Zählwerk 2.8.0 (out)" [
stateTopic="tele/tasmota_F9A39A/SENSOR",
transformationPattern="REGEX:(.*_out.*)∩JSONPATH:$[0].Total_out"
]
}
REGEX liefert eine leere Zeichenkette, wenn der String nicht matcht, woraufhin JSONPATH keinen Versuch unternimmt, den Channel upzudaten.