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

Die alternative Firmware für ESP8266 based devices

Moderatoren: seppy, udo1toni

Antworten
Selter
Beiträge: 59
Registriert: 9. Mär 2018 16:06

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

Beitrag 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" ]
	}
Zuletzt geändert von Selter am 7. Jan 2023 11:59, insgesamt 2-mal geändert.
openHAB 3.2 in einer Debian-VM mit openHABian unter Proxmox 6.4-13 auf Intel NUC 5i3ryh

Benutzeravatar
udo1toni
Beiträge: 13858
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

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

Beitrag 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.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten