Seite 1 von 1

[V 3.5.1] Wie Werte aus JSON (MQTT Topic) extrahieren?

Verfasst: Do Nov 17, 2022 5:22 pm
von Rombel
Ich suche nach einer Möglichkeit, aus einem MQTT Subscribe, das mehrere Werte liefert, die Werte zu separieren und jeweils als eigenständiges Objekt zur Weiterleitung nach KNX aufzubereiten. Andere haben das im Forum wohl auch schon für UDP vermisst.

Beispielantwort eines Shelly Temp Fühler HT Plus für die Temperatur: {"id": 0,"tC":20.7, "tF":69.2}

Bei meiner Forensuche bin ich auf einen Hinweis von Stefan aufmerksam geworden.

"BTW: In den nächsten Wochen erscheinen Insider Versionen, welche die Logik um STRING-Manipulation und Versand erweitern."

Wird diese neue Logik mein Problem lösen oder gibt es einen anderen Ansatz.

Gruß
Thomas

Re: Werte aus MQTT Topic extrahieren

Verfasst: Do Nov 17, 2022 5:34 pm
von Robosoc
Bitte die Forumsregeln (blauer Kasten oben) einmal lesen und befolgen (Versionsnummer im Betreff angeben und gerne mit Vornamen abschließen oder diesen im Footer hinzufügen.

Re: [V 3.5.1] Wie Werte aus Strings (MQTT Topic) extrahieren?

Verfasst: Do Nov 17, 2022 8:03 pm
von zaphood
Rombel hat geschrieben: Do Nov 17, 2022 5:22 pm Ich suche nach einer Möglichkeit, aus einem MQTT Subscribe, das mehrere Werte liefert, die Werte zu separieren und jeweils als eigenständiges Objekt zur Weiterleitung nach KNX aufzubereiten. Andere haben das im Forum wohl auch schon für UDP vermisst.
Beispielantwort eines Shelly Temp Fühler HT Plus für die Temperatur: {"id": 0,"tC":20.7, "tF":69.2}
Soweit ich dich verstehe, schickt dein Device einfach einen JSON String. Da drin stehen Floatwerte, da brauchst du keine Stringverarbeitung (das wäre wenn es KEINE Zahlenwerte wären, so wie beim Shelly Button, der schickt "s" oder "sss").

In deinem Fall einfach ein MQTT Gerät mit dem MainTopic anlegen (Typ JSON).
Bildschirmfoto 2022-11-17 um 19.56.39.png

Danach dann alle Werte einzeln subscriben und auf KNX weiterleiten.
IMG_4175 (1).jpeg
Der Selektor bei dir wäre z.B. Temperatur.tC

Ich empfehle den MQTT Broker zu installieren, da sieht man sehr gut wie die JSON Strukturen und daraus die Selektoren aussehen. Kann man dann einfach kopieren.

Wobei mich wundert, dass dein Shelly ein JSON schickt. Meine Shellys publizieren die Werte in einzelne Topics. JSONs bin ich eigentlich von Tasmota Devices gewohnt...

Cu
Frank

Re: [V 3.5.1] Wie Werte aus Strings (MQTT Topic) extrahieren?

Verfasst: Do Nov 17, 2022 9:18 pm
von Rombel
Ganz herzlichen Dank. Das hat perfekt geholfen. Die neuen Shelly HT plus mit e-ink Display senden jetzt tatsächlich ein JSON.
So einen Fall hatte ich bei meinem bisherigen Einsatz von MQTT noch nicht. Jetzt weiß ich wie das geht.
Besten Dank.
Thomas

Re: [V 3.5.1] Wie Werte aus Strings (MQTT Topic) extrahieren?

Verfasst: Do Nov 17, 2022 9:25 pm
von StefanW
Hi Frank,

es gibt Unterschiede zwischen 1. Generation Shelly und 2. Generation.

Bei MQTT sendet die 1. Gen Shelly in einzelnen Topics und bei 2. Gen in JSON.

3. Gen habe ich noch nicht gelesen

lg

Stefan

Re: [V 3.5.1] Wie Werte aus Strings (MQTT Topic) extrahieren?

Verfasst: Do Nov 17, 2022 9:33 pm
von Rombel
Jetzt tut sich doch noch eine Frage auf.
Wie muss der Selektor bei einer Verschachtelung aussehen. Ich möchte hier den Wert "percent" auslesen.

{
"id": 0,
"battery": {
"V": 5.9,
"percent": 95
},
"external": {
"present": false
}
}

Gruß
Thomas

Re: [V 3.5.1] Wie Werte aus Strings (MQTT Topic) extrahieren?

Verfasst: Do Nov 17, 2022 9:35 pm
von MrWilson
battery.percent

Das Thema hatten wir gerade ausführlich. Bitte mal im Forum nachschauen.