http Json Abfrage
-
- Beiträge: 34
- Registriert: 14. Jul 2018 17:42
http Json Abfrage
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"}
}
}
}
},
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.
- peter-pan
- Beiträge: 2573
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: http Json Abfrage
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.
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
- peter-pan
- Beiträge: 2573
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: http Json Abfrage
.. Ich hab an deinen JSON-String etwas herumgebastelt und ihn so:
zum Laufen gebracht.
Dann bekomme ich mit diesem Kommando:
den Wert ausgelesen. Ich habe den Wert auf 3.527 geändert.
Hier noch ein Screenshot vom Parser:
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"}
}
}
}
}
}
Dann bekomme ich mit diesem Kommando:
Code: Alles auswählen
$.broadcast.messages.outsidetemp.fields.temp2.value
Hier noch ein Screenshot vom Parser:
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian
- udo1toni
- Beiträge: 13982
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: http Json Abfrage
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.
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...
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
- peter-pan
- Beiträge: 2573
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: http Json Abfrage
@udo1toni
Super !!! Hab ich natürlich gleich installiert. Funktioniert astrein . Und gleich noch 'ne Frage!: Welchen Formatter benutzt du ?
Super !!! Hab ich natürlich gleich installiert. Funktioniert astrein . Und gleich noch 'ne Frage!: Welchen Formatter benutzt du ?
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian
- udo1toni
- Beiträge: 13982
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: http Json Abfrage
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
- peter-pan
- Beiträge: 2573
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: http Json Abfrage
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
- udo1toni
- Beiträge: 13982
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: http Json Abfrage
Es war Beautify JSON.
Im Kontextmenü steht dann auch ein Befehl Dokument formatieren zur Verfügung.
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
- peter-pan
- Beiträge: 2573
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: http Json Abfrage
Klasse, schau ich mir gleich mal an. Vielen Dank
Gruss - Peter
Hab's installiert - klappt einwandfrei. Super-Tipp !!!!
Gruss - Peter
Hab's installiert - klappt einwandfrei. Super-Tipp !!!!
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian