Genau. Es gibt noch eine Möglichkeit, mehrere Transformation Services zu verwenden, soweit ich weiß, funktioniert das aber nur mit mqtt2. Und leider muss man dazu ein Zeichen bemühen, welches nicht auf der normalen Tastatur vorhanden ist. ∩ (U+2229, nicht verwechseln mit Ո) Das erste der beiden Symbole trägt in der Windows Zeichentabelle den Namen "Durchschnitt", das zweite heißt "Großer armenischer Buchstabe vo".
Das müsste man dann zwischen die beiden Transformation Services schreiben, die Services werden von links nach rechts durchlaufen. Aber wie gesagt, ich habe das noch nie ausprobiert, keine Ahnung, ob http das unterstützt.
JsonPath Transformation Service
- udo1toni
- Beiträge: 15265
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: JsonPath Transformation Service
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet
-
- Beiträge: 10
- Registriert: 1. Aug 2019 06:33
Re: JsonPath Transformation Service Voltoplus
Hat vielleicht jemand einen Tipp für mich, ich möchte bei meinen Voltoplus nicht Die Werte U1,U2,U3 auslesen, (hier geht es)
sondern die Werte bei Analogausgang 1
Ich bekomme keinen Wert, wenn ich den Namen Analogausgang 1 verwende.
Ich habe selber die Lösung gefunden
die aktuellen Werte können über IP-Adresse + /api/v1/values ausgelesen werden. Beispiel:
{"json_values":[{"id":"U1","value":"22741"},{"id":"U2","value":"22703"},{"id":"U3","value":"22674"},{"id":"I1","value":"549"},{"id":"I2","value":"-1965"},{"id":"I3","value":"417"},{"id":"P","value":"44"},{"id":"fwdEn","value":"228"},{"id":"rvsEn","value":"46"},{"id":"AO1","value":"0"},{"id":"AO2","value":"0"},{"id":"my-PV1","value":"0"},{"id":"abl1","value":"0"},{"id":"DO1","value":"0"},{"id":"DO2","value":"0"},{"id":"LEDS","value":"1"},{"id":"LEDP","value":"2"},{"id":"date_time","value":{"year":2020,"month":2,"day":20,"hour":16,"minute":16,"second":8}}]}
sondern die Werte bei Analogausgang 1
Ich bekomme keinen Wert, wenn ich den Namen Analogausgang 1 verwende.
Ich habe selber die Lösung gefunden
die aktuellen Werte können über IP-Adresse + /api/v1/values ausgelesen werden. Beispiel:
{"json_values":[{"id":"U1","value":"22741"},{"id":"U2","value":"22703"},{"id":"U3","value":"22674"},{"id":"I1","value":"549"},{"id":"I2","value":"-1965"},{"id":"I3","value":"417"},{"id":"P","value":"44"},{"id":"fwdEn","value":"228"},{"id":"rvsEn","value":"46"},{"id":"AO1","value":"0"},{"id":"AO2","value":"0"},{"id":"my-PV1","value":"0"},{"id":"abl1","value":"0"},{"id":"DO1","value":"0"},{"id":"DO2","value":"0"},{"id":"LEDS","value":"1"},{"id":"LEDP","value":"2"},{"id":"date_time","value":{"year":2020,"month":2,"day":20,"hour":16,"minute":16,"second":8}}]}
- udo1toni
- Beiträge: 15265
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: JsonPath Transformation Service
Um es etwas lesbarer zu haben, kann man einen JSON Prettyfier benutzen (z.B. als Plugin in VSCode). Sieht dann so aus:
Die Werte für AO1 und AO2 kann man dann über einen Filter abgreifen:
bzw.
Code: Alles auswählen
{
"json_values": [
{
"id": "U1",
"value": "22741"
},
{
"id": "U2",
"value": "22703"
},
{
"id": "U3",
"value": "22674"
},
{
"id": "I1",
"value": "549"
},
{
"id": "I2",
"value": "-1965"
},
{
"id": "I3",
"value": "417"
},
{
"id": "P",
"value": "44"
},
{
"id": "fwdEn",
"value": "228"
},
{
"id": "rvsEn",
"value": "46"
},
{
"id": "AO1",
"value": "0"
},
{
"id": "AO2",
"value": "0"
},
{
"id": "my-PV1",
"value": "0"
},
{
"id": "abl1",
"value": "0"
},
{
"id": "DO1",
"value": "0"
},
{
"id": "DO2",
"value": "0"
},
{
"id": "LEDS",
"value": "1"
},
{
"id": "LEDP",
"value": "2"
},
{
"id": "date_time",
"value": {
"year": 2020,
"month": 2,
"day": 20,
"hour": 16,
"minute": 16,
"second": 8
}
}
]
}
Code: Alles auswählen
JSONPATH($.json_values[?(@.id='AO1')].value)
Code: Alles auswählen
JSONPATH($.json_values[?(@.id='AO2')].value)
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet