DHT11 an Sonoffs Temperatur auslesen JSON

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Benutzeravatar
netZr0t
Beiträge: 56
Registriert: 9. Jan 2018 10:22
Answers: 0

DHT11 an Sonoffs Temperatur auslesen JSON

Beitrag 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
Zuletzt geändert von netZr0t am 9. Jan 2018 21:59, insgesamt 11-mal geändert.

Benutzeravatar
netZr0t
Beiträge: 56
Registriert: 9. Jan 2018 10:22
Answers: 0

Re: DHT11 an Sonoffs Temperatur auslesen JSON

Beitrag 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)]" }
Zuletzt geändert von netZr0t am 9. Jan 2018 22:00, insgesamt 1-mal geändert.

Benutzeravatar
Cyrelian
Beiträge: 601
Registriert: 24. Sep 2015 17:55
Answers: 4

DHT11 an Sonoffs Temperatur auslesen JSON

Beitrag 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

Benutzeravatar
netZr0t
Beiträge: 56
Registriert: 9. Jan 2018 10:22
Answers: 0

Re: DHT11 an Sonoffs Temperatur auslesen JSON

Beitrag von netZr0t »

Ja, danke ... mein Gott, langsam komm ich dahinter, danke

Antworten