Seite 2 von 2

Re: JsonPath Transformation Service

Verfasst: 3. Sep 2020 16:54
von udo1toni
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.

Re: JsonPath Transformation Service Voltoplus

Verfasst: 16. Okt 2020 10:34
von Cwieser
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}}]}

Re: JsonPath Transformation Service

Verfasst: 17. Okt 2020 09:54
von udo1toni
Um es etwas lesbarer zu haben, kann man einen JSON Prettyfier benutzen (z.B. als Plugin in VSCode). Sieht dann so aus:

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
			}
		}
	]
}
Die Werte für AO1 und AO2 kann man dann über einen Filter abgreifen:

Code: Alles auswählen

JSONPATH($.json_values[?(@.id='AO1')].value)
bzw.

Code: Alles auswählen

JSONPATH($.json_values[?(@.id='AO2')].value)