http Json Abfrage

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
schlagi
Beiträge: 34
Registriert: 14. Jul 2018 17:42
Answers: 0

http Json Abfrage

Beitrag von schlagi »

Hallo, Bin gerade dabei von einer http Json Seite Daten Abzufragen aber es funktioniert leider nicht und ich finde auch den Fehler nicht.
Kann mir da jemand helfen. Mein Problem ist das item wie ich den JSonPath angeben muß für diese Position .

Ich mächte den Temperaturwert vom Outsidetemp.fields.temp2.value (4.688) auslesen. und auf der Sidemap darstellen.

Ich verbinde mich mit http mit dieser Konfiguration.

http.cfg

Vaillant.url=http://10.0.0.87:8889/data
Vaillant.updateInterval=100000

item
String Vaillant_Aussentemp "Aussentemp [%d]" { http="<[Vaillant:60000:JSONPATH($data.broadcast.messages.outsidetemp.fields.temp2.value)]"}


Danke für die Hilfe



{
"broadcast": {
"messages": {
"datetime": {
"name": "datetime",
"passive": true,
"write": false,
"lastup": 1585854796,
"zz": 254,
"fields": {
"outsidetemp": {"value": 3.000},
"time": {"value": "21:13:04"},
"date": {"value": "02.04.2020"}
}
},
"error": {
"name": "error",
"passive": true,
"write": false,
"lastup": 0
},
"hwcStatus": {
"name": "hwcStatus",
"passive": true,
"write": false,
"lastup": 1585854808,
"zz": 254,
"fields": {
"0": {"name": "onoff", "value": "off"},
"1": {"name": "VF1", "value": 25},
"2": {"name": "onoff", "value": "off"}
}
},
"id-u": {
"name": "id",
"passive": true,
"write": false,
"lastup": 0
},
"load": {
"name": "load",
"passive": true,
"write": false,
"lastup": 0
},
"outsidetemp": {
"name": "outsidetemp",
"passive": true,
"write": false,
"lastup": 1585854795,
"zz": 254,
"fields": {
"temp2": {"value": 3.000}
}
},
"signoflife": {
"name": "signoflife",
"passive": true,
"write": false,
"lastup": 0
},
"vdatetime": {
"name": "vdatetime",
"passive": true,
"write": false,
"lastup": 1585854795,
"zz": 254,
"fields": {
"time": {"value": "21:13:04"},
"date": {"value": "02.04.2020"}
}
}
}
},
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von schlagi am 2. Apr 2020 21:14, insgesamt 1-mal geändert.

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

Re: http Json Abfrage

Beitrag von peter-pan »

Ich bin mir nicht sicher ob der Formatter [%d] bei einem String-Item funktioniert. Probier's mal mit [%s].

Hast du deinen JSON-String mal mit einem Online-Evaluator getestet ? Kannst du den JSON-String mal als Code (nicht als Bild) posten.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian

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

Re: http Json Abfrage

Beitrag von peter-pan »

.. Ich hab an deinen JSON-String etwas herumgebastelt und ihn so:

Code: Alles auswählen

{
"broadcast": {
"messages": {
"datetime": {
"name": "datetime",
"passive": true,
"write": false,
"lastup": 1585854796,
"zz": 254,
"fields": {
"outsidetemp": {"value": 3.000},
"time": {"value": "21:13:04"},
"date": {"value": "02.04.2020"}
}
},
"error": {
"name": "error",
"passive": true,
"write": false,
"lastup": 0
},
"hwcStatus": {
"name": "hwcStatus",
"passive": true,
"write": false,
"lastup": 1585854808,
"zz": 254,
"fields": {
"0": {"name": "onoff", "value": "off"},
"1": {"name": "VF1", "value": 25},
"2": {"name": "onoff", "value": "off"}
}
},
"id-u": {
"name": "id",
"passive": true,
"write": false,
"lastup": 0
},
"load": {
"name": "load",
"passive": true,
"write": false,
"lastup": 0
},
"outsidetemp": {
"name": "outsidetemp",
"passive": true,
"write": false,
"lastup": 1585854795,
"zz": 254,
"fields": {
"temp2": {"value": 3.527} 
}
},
"signoflife": {
"name": "signoflife",
"passive": true,
"write": false,
"lastup": 0
},
"vdatetime": {
"name": "vdatetime",
"passive": true,
"write": false,
"lastup": 1585854795,
"zz": 254,
"fields": {
"time": {"value": "21:13:04"},
"date": {"value": "02.04.2020"}
}
}
}
}
}
zum Laufen gebracht.

Dann bekomme ich mit diesem Kommando:

Code: Alles auswählen

$.broadcast.messages.outsidetemp.fields.temp2.value
den Wert ausgelesen. Ich habe den Wert auf 3.527 geändert.

Hier noch ein Screenshot vom Parser:
parse.jpg
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian

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

Re: http Json Abfrage

Beitrag von udo1toni »

Tipp am Rande: Für VSCode gibt es z.B. das Plugin JSONPath StatusBar, mit dem man einfach nur das JSON in eine *.json Datei schiebt, sich zum gesuchten Wert hangelt und anschließend in der Leiste unterhalb des Fensters den JSON Path ablesen kann.
jsonpath.png
Man kann den Pfad sogar in die Zwischenablage übernehmen lassen. (Das vorangestellte $. muss man aber noch ergänzen.)
Es gibt auch passende Formatter, die das JSON automatisch aufhübschen, damit es besser lesbar wird (Zeilenumbrüche und Einrückungen), Das zuklappen von uninteressanten Passagen ist eh Standard in VSCode...
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

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

Re: http Json Abfrage

Beitrag von peter-pan »

@udo1toni
Super !!! Hab ich natürlich gleich installiert. Funktioniert astrein :D . Und gleich noch 'ne Frage!: Welchen Formatter benutzt du ?
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian

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

Re: http Json Abfrage

Beitrag von udo1toni »

peter-pan hat geschrieben: 3. Apr 2020 12:31 @udo1toni
Super !!! Hab ich natürlich gleich installiert. Funktioniert astrein :D . Und gleich noch 'ne Frage!: Welchen Formatter benutzt du ?
Puh... gute Frage... Da ich im Dienst bin, kann ich da jetzt leider nicht nachschauen. Ich hab nur im Kopf, dass es unübersichtlich viele waren...

Vielleicht war es Prettify JSON. Den Vorgang selbst muss man leider über Befehl auslösen.

Eventuell war es auch Beautify JSON. hmm...
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

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

Re: http Json Abfrage

Beitrag von peter-pan »

Danke für die Info. Hatte aber keine Eile. Ich googel mal ein bisschen.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian

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

Re: http Json Abfrage

Beitrag von udo1toni »

Es war Beautify JSON.

Im Kontextmenü steht dann auch ein Befehl Dokument formatieren zur Verfügung.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

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

Re: http Json Abfrage

Beitrag von peter-pan »

Klasse, schau ich mir gleich mal an. Vielen Dank

Gruss - Peter

Hab's installiert - klappt einwandfrei. Super-Tipp !!!!
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian

Antworten