Seite 1 von 1

DHT11 an Sonoffs Temperatur auslesen JSON

Verfasst: 9. Jan 2018 19:24
von netZr0t
Hallo Helden der Homeautomatisierung.
Ich kämpfe seit Tagen mit dem DHT11 Sensor, der in der Web Oberfläche des Tasmota und auch im MQTT einwandfrei liefert. Ich möchte ganz einfach die Temperatur in der Sitemap anzeigen.

Das Item sieht so aus:

Code: Alles auswählen

Number ManCaveTemp "Temperatur [%.1f °C] "
{ mqtt="<[mosquitto:tele/mancavelight_s03/SENSOR:state:JSONPATH($.DHT11.Temperatur)]" }
Wenn ich tele/mancavelight_s03/SENSOR subscribe bekomme ich brav das hier:

Code: Alles auswählen

{"Time":"2018-01-09T19:00:48","DHT11":{"Temperature":22.0,"Humidity":32.0},"TempUnit":"C"}
Mit der Sitemap bekomme ich leider keinen Temperaturwert angezeigt

Code: Alles auswählen

Text label="ManCave" icon=Cellar {
				Frame label="ManCave"{
				Switch item=Light
				Text item=ManCaveTemp
DieFehlermeldung schaut so aus:

Code: Alles auswählen

2018-01-09 21:23:08.083 [ERROR] [.mqtt.internal.MqttMessageSubscriber] - Error processing MQTT message.

org.openhab.core.transform.TransformationException: Invalid path '$.DHT11.Temperatur' in '{"Time":"2018-01-09T21:23:08","DHT11":{"Temperature":23.0,"Humidity":31.0},"TempUnit":"C"}'
Ich habe hier schon alles mögliche gelesen aber komme mit dem JSON nicht klar. Muss ich da ausser dem JSONpath Transformation Addon noch was extra installieren?
Und ja, der Broker heißt mosquitto

Gruss

Torsten

Re: DHT11 an Sonoffs Temperatur auslesen JSON

Verfasst: 9. Jan 2018 21:54
von netZr0t
OK ... ich habs selbst hinbekommen. Es war ein parsing Fehler des JSON Strings.
Mir hat bei der richtigen Formulierung des Strings diese Site geholfen:

http://jsonpath.herokuapp.com/?path=$..author

Dort habe ich links den Output String des Sensors reingepasted

Code: Alles auswählen

{"Time":"2018-01-09T19:00:48","DHT11":{"Temperature":22.0,"Humidity":32.0},"TempUnit":"C"}
und dann mit

Code: Alles auswählen

$.DHT11.Temperature
rausgefunden, dass das das richtige Ergebnis liefert.

der richtige Item Code heisst jetzt bei mir:

Code: Alles auswählen

Number ManCaveTemp "Temperatur [%.1f °C] " <Temperature>
{ mqtt="<[mosquitto:tele/mancavelight_s03/SENSOR:state:JSONPATH($.DHT11.Temperature)]" }

DHT11 an Sonoffs Temperatur auslesen JSON

Verfasst: 9. Jan 2018 21:58
von Cyrelian
Hi Thorsten,

der JSONPATH ist fast richtig. Wenn du jetzt noch auf die richtige Sprache abfragst ist er perfekt. :–)
Du fragst auf Temperatur ab, dass kennt er nicht, siehe Log. Er kennt nur Temperature. Also english :–)

Cu
Cyrelian

Re: DHT11 an Sonoffs Temperatur auslesen JSON

Verfasst: 9. Jan 2018 22:01
von netZr0t
Ja, danke ... mein Gott, langsam komm ich dahinter, danke