String Auflösen

Hallo zusammen
Ich stecke total fest, versuche schon seit Tagen einen MQTT String aufzulösen.
Unbenannt
der Paylod sieht so aus.

payload: "{"Time":"2022-12-26T11:53:53","Switch1":"OFF","Switch2":"ON","Switch3":"ON","Switch4":"ON","Switch5":"ON","Switch6":"ON","Switch7":"OFF","Switch8":"OFF","DHT11":{"Temperature":19.4,"Humidity":67.0,"DewPoint":13.1},"TempUnit":"C"}"

Dann habe ich eine split node eingefügt
danach teilt sich der Payload in seine Bestandteile auf.
Ich möchte alles was hinter DHT11 steht auflösen .

payload: ""DHT11":{"Temperature":19.4"
payload: ""Humidity":67.0"
payload: ""DewPoint":13.1}"

Wie bekomme ich für Temperatur, Feuchte, und Taupunkt verwertbare Werte.
Kann da jemand helfen????
Gruß Arno

Hallo Arno,

der MQTT Payload ist ein JSON String. Diesen kannst Du mit der JSON Node in ein JSON Objekt umwandeln und dann mittels Dot Notation via msg.payload.DHT11.Temperature auf die Werte zugreifen.

schöne Grüße
Ron

Hallo Ron
danke für die schnelle Antwort.
Das hatte ich auch schon mal versucht.
aber da bekomme ich flgende Fehler Meldung.


Gruß Arno

Hallo Ron
hat jetzt funktioniert.
Ich hatte vorher den json Node hinter den Split angebunden.
nun habe ich ihn direkt hiter dem MQTT Node angebunden.
SUUUUper Danke
Gruß Arno

Der MQTT In - Node lässt sich so einstellen, dass er direkt ein Objekt liefert, generiert aus dem ankommenden JSON string. Das spart einige Nodes...

Auf die einzelnen Properties läßt sich dann sehr einfach mit einem Change Node zugreifen; ein Function Node ist dafür nicht notwendig...

Hallo ralphwetzel
das ist ja cooool :slight_smile:
da hätte ich mir viel Arbeit sparen können.

Gruß
Arno

1 Like