Seite 1 von 1

[gelöst] MQTT JSONPATH für Gaszähler auslesen mittels WemosD1+Reed

Verfasst: 21. Dez 2022 21:07
von Selter
Hallo zusammen,

nach dieser Anleitung möchte ich den Gaszähler mittels Wemos D1 und Reed auslesen.
https://www.smarthomejetzt.de/gaszaehle ... rt-machen/

Auf Basis des Reed-Kontakts zählt Tasmota die 0-Durchläufe des Zählers mit, ein Durchlauf entspricht bei drei Nachkommastellen 0,01 qm Gas.
Die Daten kommen auch in Mosquitto an. Mit MQTT-FX sehe ich folgendes:

Code: Alles auswählen

{"Time":"2022-12-21T21:02:52","COUNTER":{"C1":52}}
Relevant ist der Wert für den "COUNTER" - also aktuell "52".

Wie bekomme ich diesen Wert mittels Transformation in den Channel?

Code: Alles auswählen

Thing topic Wemos_1 "Wemos #1" @ "MQTT" {
	Channels:
		Type number :  wemos_c1  "Wemos #1: Counter1" [ stateTopic="tasmota/tasmota-wemos1/tele/SENSOR", transformationPattern="JSONPATH:$.XXXXXX" ]
	}

Re: MQTT JSONPATH für Gaszähler auslesen mittels WemosD1+Reed

Verfasst: 22. Dez 2022 02:31
von udo1toni
Etwas anders formatiert sieht das gelieferte JSON Objekt so aus:

Code: Alles auswählen

{
    "Time": "2022-12-21T21:02:52",
    "COUNTER": {
        "C1": 52
    }
}
Und Du kannst die Struktur erkennen.
Konkret brauchst Du als transformationPattern das hier:

Code: Alles auswählen

JSONPATH:$.COUNTER.C1
$ ist der Root-Knoten, Counter der erste Unterknoten,C1 der Parameter mit dem Wert.

Es sollte klar sein, dass JSONPATH installiert sein muss.