[gelöst] Probleme beim Auslesen mit jsonpath

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Flo0815
Beiträge: 4
Registriert: 25. Apr 2023 21:39
Answers: 0

[gelöst] Probleme beim Auslesen mit jsonpath

Beitrag von Flo0815 »

Hallo zusammen,

ich habe einen Tasmota geflashten Shelly EM in OpenHAB über das Mosqitto Binding und ein entsprechendes Thing eingebunden.
Ich kann etliche der Messwerte damit schon auslesen, d.h. ich denke Birdge und Thing funkionieren generell. Ein Problem habe ich allerdings mit allen Werten die im json als, meiner Meinung nach, Array angelegt sind. Hier der Code zweier Channels und das zugehörige komplette json "File"

Topic:

Code: Alles auswählen

tele/PV_Messung/SENSOR
json aus MqttExplorer:

Code: Alles auswählen

{"Time":"2023-04-25T20:59:53","ENERGY":{"TotalStartTime":"2023-04-20T22:46:37","Total":-9.965,"Yesterday":-1.468,"Today":-1.846,"TodaySumImport":0.000,"TodaySumExport":1.846,"ExportActive":[0.000,0.000],"Period":[0,0],"Power":[0,0],"ApparentPower":[0,0],"ReactivePower":[0,0],"Factor":[0.00,0.00],"Frequency":50,"Voltage":232,"Current":[0.000,0.000]}}
1 Funktioniert:

Code: Alles auswählen

 - id: PV_Energy_TodaySumExp
    channelTypeUID: mqtt:number
    label: PV_Energy_TodaySumExp
    description: null
    configuration:
      stateTopic: tele/PV_Messung/SENSOR
      transformationPattern: JSONPATH:$.ENERGY.TodaySumExport
      unit: kWh
2 Kostet mir seit 2 Abenden Nerven:

Code: Alles auswählen

- id: PV_Energy_Power1
    channelTypeUID: mqtt:number
    label: PV_Energy_Leistung1
    description: null
    configuration:
      stateTopic: tele/PV_Messung/SENSOR
      transformationPattern: JSONPATH:$.ENERGY.Power.0
      unit: W
Ebenfalls aus dem MqttExplorer der "Pfad" zu dem Wert: ENERGY.Power.0

Kann mir jemand sagen was für einen Fehler ich hier mache.
Zuletzt geändert von Flo0815 am 26. Apr 2023 18:10, insgesamt 1-mal geändert.

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Probleme beim Auslesen mit jsonpath

Beitrag von peter-pan »

Ich denke, dass der Pattern so aussieht:

Code: Alles auswählen

JSONPATH:$.ENERGY.Power
Der JSON-String etwas "gehübscht":

Code: Alles auswählen

{
    "Time": "2023-04-25T20:59:53",
    "ENERGY": {
        "TotalStartTime": "2023-04-20T22:46:37",
        "Total": -9.965,
        "Yesterday": -1.468,
        "Today": -1.846,
        "TodaySumImport": 0,
        "TodaySumExport": 1.846,
        "ExportActive": [
            0,
            0
        ],
        "Period": [
            0,
            0
        ],
        "Power": [
            0,
            0
        ],
        "ApparentPower": [
            0,
            0
        ],
        "ReactivePower": [
            0,
            0
        ],
        "Factor": [
            0,
            0
        ],
        "Frequency": 50,
        "Voltage": 232,
        "Current": [
            0,
            0
        ]
    }
}
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Flo0815
Beiträge: 4
Registriert: 25. Apr 2023 21:39
Answers: 0

Re: Probleme beim Auslesen mit jsonpath

Beitrag von Flo0815 »

Ja mit dem Pattern, dass du hier angiebst habe ich es auch schon versucht, Werte bekomme da aber auch keine.

Und ja gehübscht sieht das JSON String genau so aus. Aber was mache ich dann Falsch bzw was muss ich anpassen das ich diese Messwerte die in dem Array bei z.B. Power stehen bekomme.

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Probleme beim Auslesen mit jsonpath

Beitrag von peter-pan »

Der Wert ist ja auch 0,0
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

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

Re: Probleme beim Auslesen mit jsonpath

Beitrag von udo1toni »

Ich hab das Posting oben mal etwas formatiert, der besseren Lesbarkeit wegen ;)
peter-pan hat geschrieben: 25. Apr 2023 23:21 Der Wert ist ja auch 0,0
Nope.
Der Wert ist nicht 0,0, der Wert ist [0,0]. Es handelt sich um einen Knoten mit zwei separaten Werten, weil es sich um eine Zweikanalgerät handelt.
Der korrekte Schlüssel für den ersten Channel heißt entsprechend $.ENERGY.Power[0], der für den zweiten Channel $.ENERGY.Power[1]

Wird vielleicht deutlicher mit einem Bild des JSON Plugins von Notepad++...
Screenshot 2023-04-26 020743.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Probleme beim Auslesen mit jsonpath

Beitrag von peter-pan »

Sorry, da war ich zu schnell.

Udo hat natürlich Recht. Aber da hätte ich auch selber drauf kommen können(müssen).

Einen Wert, so wie ich ihn dargestellt habe (0,0), gibt es nicht, wenn dann schon "0.0".

Ich habe aber in meinem VSC-Add-On, den falschen Parameter angeklickt.

Aber der Tipp von Udo mit dem JSON-Viewer in Notepad++ war toll. Ich hab mir den gleich installiert.
json.View.jpg
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Flo0815
Beiträge: 4
Registriert: 25. Apr 2023 21:39
Answers: 0

Re: Probleme beim Auslesen mit jsonpath

Beitrag von Flo0815 »

Danke Udo funktioniert, lag wohl an meiner Ungeduld, ich hatte das schon mal mit der [] nur hatte ich da die Aktualisierung vom Tasmota noch auf 300 s und wohl nicht lange genug gewartet. Asche über mein Haupt.

Vielen Dank der Tipp mit dem Notepad ist super das hatte ich schon kannte nur diese funktion noch nicht.

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

Re: [gelöst] Probleme beim Auslesen mit jsonpath

Beitrag von udo1toni »

Tatsächlich ist VS Code mit einer Unmenge an passenden Plugins Notepad++ auch hier überlegen (man muss halt die richtigen finden...).
Z.B. JSON Path Status Bar blendet für den Wert, auf dem der Cursor steht den gültigen Path ein (und man kann ihn mit einem Mausklick direkt in die Zwischenablage übernehmen)
Screenshot 2023-04-27 211514.png
Ich hatte nur Notepad++ bereits geöffnet und war zu faul, VS Code aufzurufen - ich kannte die korrekte Antwort ja auch so...

EDIT: Ich stelle gerade fest, dass der Bildschirmausschnitt gar nicht den korrespondierenden wert anzeigt (der eingemalte Pfeil zeigt auf Period, nicht Power) - egal, ich lass das jetzt so, es sollte ja klar sein, wie es gemeint ist...
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Flo0815
Beiträge: 4
Registriert: 25. Apr 2023 21:39
Answers: 0

Re: [gelöst] Probleme beim Auslesen mit jsonpath

Beitrag von Flo0815 »

Danke für den Tip Udo. Werde mir das mal ansehen.

Antworten