JSONPATH-Fehler?

Die alternative Firmware für ESP8266 based devices

Moderatoren: seppy, udo1toni

Antworten
Chris5020
Beiträge: 18
Registriert: 13. Nov 2019 22:06

JSONPATH-Fehler?

Beitrag von Chris5020 »

Hallo beisammen,

ich hab jetzt endlich meine GOSUND SP1 mit der Tasmota geflashed und in Openhab eingebunden.

Das Schalten der Steckdose funktioniert auch, aber das auslesen der Werte liefert eigenartige Fehler, die ich trotz aller Versuche nicht lösen konnte

Hier ein Ausschnitt aus meiner openhab.log

Code: Alles auswählen

2019-11-23 18:24:41.986 [WARN ] [l.generic.ChannelStateTransformation] - Transformation service JSONPATH for pattern $.Time not found!
2019-11-23 18:24:41.987 [WARN ] [l.generic.ChannelStateTransformation] - Transformation service JSONPATH for pattern $.ENERGY.Yesterday not found!
2019-11-23 18:24:41.987 [WARN ] [eneric.internal.generic.ChannelState] - Incoming payload '{"Time":"2019-11-23T18:24:41","ENERGY":{"TotalStartTime":"2019-11-22T21:49:53","Total":0.000,"Yesterday":0.000,"Today":0.000,"Period":0,"Power":0$
2019-11-23 18:24:41.987 [WARN ] [l.generic.ChannelStateTransformation] - Transformation service JSONPATH for pattern $.ENERGY.Today not found!
2019-11-23 18:24:41.988 [WARN ] [eneric.internal.generic.ChannelState] - Incoming payload '{"Time":"2019-11-23T18:24:41","ENERGY":{"TotalStartTime":"2019-11-22T21:49:53","Total":0.000,"Yesterday":0.000,"Today":0.000,"Period":0,"Power":0$
2019-11-23 18:24:41.988 [WARN ] [l.generic.ChannelStateTransformation] - Transformation service JSONPATH for pattern $.ENERGY.Total not found!
2019-11-23 18:24:41.988 [WARN ] [eneric.internal.generic.ChannelState] - Incoming payload '{"Time":"2019-11-23T18:24:41","ENERGY":{"TotalStartTime":"2019-11-22T21:49:53","Total":0.000,"Yesterday":0.000,"Today":0.000,"Period":0,"Power":0$
Einerseits sagt er Payload = JSON empfangen
'{"Time":"2019-11-23T18:24:41","ENERGY":{"TotalStartTime":"2019-11-22T21:49:53","Total":0.000,"Yesterday":0.000,"Today":0.000,"Period":0,"Power":0$

und dann aber Transformation service JSONPATH for pattern $.ENERGY.Today not found!
Aber wenn ich den JSON-String richtig lese, dann kommt da aber ENERGY.Today vor?

Hier ein Auszug aus meiner things

Code: Alles auswählen

           Type number : Total             "POW Total"                     [ stateTopic="sonoff/sonoff_3482/tele/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Total" ]
            Type number : Today             "POW Heute"                     [ stateTopic="sonoff/sonoff_3482/tele/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Today" ]
            Type number : Yesterday         "POW Gestern"                   [ stateTopic="sonoff/sonoff_3482/tele/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Yesterday" ]
            Type number : Voltage           "POW Spannung"                  [ stateTopic="sonoff/sonoff_3482/tele/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Voltage" ]
Schalten der Dose geht, aber das Auslesen der Werte liefert Fehler oder Müll.

hat wer einen Tipp wo ich angreifen kann?

lg, Chris

Chris5020
Beiträge: 18
Registriert: 13. Nov 2019 22:06

Re: JSONPATH-Fehler?

Beitrag von Chris5020 »

So, nachdem ich heute Stundenlang alles mögliche probiert habe bin ich zufällig in einem anderen Beitrag darauf gestossen, dass man den JSONPATH-Transformation-Service extra installieren muss.

Siehe da, jetzt geht es

Chris5020
Beiträge: 18
Registriert: 13. Nov 2019 22:06

Re: JSONPATH-Fehler?

Beitrag von Chris5020 »

Doch nur fast, die Auswertung der INFO-Commandos geht irgendwie nicht

Code: Alles auswählen

            Type string : version           "Std 3482 Vers"                 [ stateTopic="sonoff/sonoff_3482/tele/INFO1", transformationPattern="JSONPATH:$.Version"]
            Type string : fallback          "Std 3482 Fallback"             [ stateTopic="sonoff/sonoff_3482/tele/INFO1", transformationPattern="JSONPATH:$.Hostname"]
            Type string : IP                "Std 3482 IP "                  [ stateTopic="sonoff/sonoff_3482/tele/INFO2", transformationPattern="JSONPATH:$.IPAddress"]
lt. Console sollte der JSON so aussehen

Code: Alles auswählen

20:33:08 MQT: sonoff/sonoff_3482/tele/INFO1 = {"Module":"Gosund SP1 v23","Version":"7.0.0.3(tasmota)","FallbackTopic":"cmnd/DVES_6FAD9A_fb/","GroupTopic":"sonoff/tasmotas/cmnd/"}
20:33:08 MQT: sonoff/sonoff_3482/tele/INFO2 = {"WebServerMode":"Admin","Hostname":"sonoff_3482-3482","IPAddress":"10.1.1.38"}
in der UI schreibt er aber den JSON direkt hin
{"WebServerMode":"Admin","Hostname":"sonoff_3482-3482","I

Im Log diesmal kein Konvertierungsfehler

alle anderen Werte gehen jetzt

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

Re: JSONPATH-Fehler?

Beitrag von udo1toni »

Was steht im Payload? Was in der Sonoff Konsole steht, ist nur ein Anhaltspunkt, sagt aber nichts darüber aus, was in openHAB ankommt.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Chris5020
Beiträge: 18
Registriert: 13. Nov 2019 22:06

Re: JSONPATH-Fehler?

Beitrag von Chris5020 »

Danke für's Feedback, aber ich hab keine Ahnung wo ich mir die payload ansehen kann.
weder im openhab.log noch event.log steht was, auch nicht bei mosquitto.

Nur am Anfang, als noch Fehler waren, habe ich Einträge im openhab.log

Auch mit dem mosquitto_sub-Client konnte ich hier nicht viel rausfinden.

Hast du eine Idee wo ich die Payload sehen kann? Karaf?

lg, Chris

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

Re: JSONPATH-Fehler?

Beitrag von udo1toni »

Du kannst einfach einen Mqtt Browser verwenden, z.B. mqtt.fx oder mqtt spy.
Es gibt auch Apps für's Handy, auch eine nette Option.
Allen gemein ist, dass Du sie mit dem Broker verbindest und anschließend ein oder mehrere Topic(s) abonnierst.
Selbstverständlich kannst Du auch ein Topic publishen.

# ist die Abkürzung für "Alles", Du kannst aber auch Einschränkungen vornehmen wie meingerät/# um alles von diesem einen Gerät zu Gesicht zu bekommen. Ab dem # wird einfach alles ignoriert (also der gesamte darunter befindliche Baum dargestellt) Das funktioniert bei Tasmota natürlich nur, wenn der prefix nach hinten geschoben wird - aber das hast Du schon so konfiguriert...

Die Zugangsdaten sind die gleichen wie in openHAB bzw. Tasmota, bis auf die Client ID natürlich, die muss eindeutig sein.

Ach so... Du hast da einen channel fallback, be idem Du aus INFO1 den Hostname ausliest. Hostname ist in INFO2 enthalten, nicht in INFO1 (abgesehen davon deutet der Channel Name auf einen anderen Inhalt hin).
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Chris5020
Beiträge: 18
Registriert: 13. Nov 2019 22:06

Re: JSONPATH-Fehler?

Beitrag von Chris5020 »

Danke, mqtt-spy hab ich auch gefunden installiert und das Topic subscribed

Spannenderweise kommen die INFO-Topics nicht, oder nicht so oft?
Hab gerade gesehen, dass jetzt plötzlich die Werte auch im OpenHab richtig angezeigt werden.

Sichtlich wird das nur sporadisch abgefragt.

Danke wie immer für deine Tipps!

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

Re: JSONPATH-Fehler?

Beitrag von udo1toni »

Immer gerne :)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten