Seite 2 von 3

Re: [3.5.1] API/JSON: Wie Antwort mit mehreren "Channels" Auswerten?

Verfasst: Mi Nov 16, 2022 6:37 pm
von Chris M.
Ja, Leerzeichen sind hier erlaubt (genauer: hier wird ein "string" erwartet, und bei dem gibt es nur wenige Einschränkungen https://www.json.org/json-de.html )

Wohingegen
MrWilson hat geschrieben: Mi Nov 16, 2022 2:03 pm Data."Logging Analog".[0].Value.Value
kein korrektes JavaScript ist. Hier wäre Data["Logging Analog"][0].Value.Value dagegen eine korrekte Variante. Das sollte aber nicht überraschen, der Json Pathfinder hat ja genau diesen Selektor ausgegeben.

Re: [3.5.1] API/JSON: Wie Antwort mit mehreren "Channels" Auswerten?

Verfasst: Mi Nov 16, 2022 6:54 pm
von MrWilson
Das ist ja scheinbar das Problem. Der TWS nimmt die Variante angeblich nicht an. Was Thomas aber genau macht, eingestellt hat oder welche Geräte er überhaupt benutzt ist nicht klar.

Re: [3.5.1] API/JSON: Wie Antwort mit mehreren "Channels" Auswerten?

Verfasst: Do Nov 17, 2022 12:27 am
von Tomtheripper
@MrWilson

Nein, funktioniert so nicht, Format Path Invalid.

Die Abfrage funktioniert in diesem Fall ja eigentlich immer gleich, je nach gewünschter Info wird jsonparam=AM ergänzt,
z.B. jsonparam=AM,I,O,La
(in diesem Beispiel: AM=Modbus, I=Eingänge vom Heizungsregler, O=Ausgänge, La=Analog Datalogging)

Sonst liefern alle Request-Parameter ein Ergebnis, nur dieser mit der Leerstelle nicht.

Bild

Re: [3.5.1] API/JSON: Wie Antwort mit mehreren "Channels" Auswerten?

Verfasst: Do Nov 17, 2022 12:30 am
von Tomtheripper
Oh, wenn das Format json-konform ist - wie @Chris M. schreibt, haben wir ja vielleicht doch einen kleinen Fehler am Timberwolf entdeckt, oder?


Nachtrag, grad nochmal gecheckt:
Die "Logging Analog"-Antworten können mehrere Nodes (UVR16x2 und CMI), und funktionieren bei keinem.
Bei beiden kommt dieser Path invalid Fehler.
Alle anderen gewünschten Werte von beiden Geräten werden korrekt ausgewertet.

Deswegen vermute ich tatsächlich einen TWS - Bug.
Ich denke, das sollten sich die ElabNet-Jungs und Mädels anschauen.

An Elabnet: falls ihr euch auf meinen Server draufschalten wollt, kein Problem. Ich hab' Testweise die betreffenden API-Sachen alle dringelassen.
Aber: Das "Technische Alternative CMI" kann leider nur mindestens "60 Sekunden".

LG
Thomas

Re: [3.5.1] API/JSON: Wie Antwort mit mehreren "Channels" Auswerten?

Verfasst: Do Nov 17, 2022 9:11 am
von MrWilson
Das Thema interessiert mich auch. Ich hatte z.B. bei der Abfrage einer Hue-Lampe als Antwort

[
{
"success": {
"/groups/7/action/on": false
}
}
]

der Pfad ist laut Pathfinder eigentlich

[0].success["/groups/7/action/on"]

der TWS akzeptiert aber bei mir nur [0].success."/groups/7/action/on"

Also eckige Klammer weg und ein Punkt eingefügt. Was da alles an Varianten zugelassen ist oder konform/nichtkonform ist kann ich nicht sagen.

Es bleibt spannend ;)

Re: [3.5.1] API/JSON: Wie Antwort mit mehreren "Channels" Auswerten?

Verfasst: Do Nov 17, 2022 10:57 am
von StefanW
Hi TOm,
Tomtheripper hat geschrieben: Do Nov 17, 2022 12:30 amAn Elabnet: falls ihr euch auf meinen Server draufschalten wollt, kein Problem. Ich hab' Testweise die betreffenden API-Sachen alle dringelassen.
ich gebe das an die Entwickler, allerdings werden wir das voraussichtlich erst ab nächster Woche schaffen, weil wir arbeiten gerade daran, die IP1 zur V 4.0 herauszugeben


Edit: Hilfreich wäre eine Zusammenfassung, was nun genau das Problem ist, damit sich die Entwickler nicht durch den ganzen Thread arbeiten müssen


lg

Stefan

Re: [3.5.1] API/JSON: Wie Antwort mit mehreren "Channels" Auswerten?

Verfasst: Do Nov 17, 2022 11:09 am
von Tomtheripper
...ja le** mich doch...

Eigentlich hab' ich gedacht, alles probiert zu haben. :oops:

Aber so (Klammer weg, Punkt gesetzt) funktionierts jetzt - bei beiden Nodes.

Data."Logging Analog"[20].Value.Value

Manchmal zweif'le ich an mir selbst... :angry-banghead:

Danke @MrWilson !!

@Stefan
Es gibt kein Problem, nur mal wieder Dummheit vor dem PC... :oops:

Wobei ganz so einfach ist's dann doch nicht. Woher sollte ich wissen, dass der Pfad vom Json-Pathfinder "nicht in Stein gemeißelt ist" und man den noch "anpassen" kann/muss.

Case closed!


Viele Grüße
Thomas

Re: [3.5.1] API/JSON: Wie Antwort mit mehreren "Channels" Auswerten?

Verfasst: Do Nov 17, 2022 11:19 am
von MrWilson
:clap:

Ganz großes Kino.

Data."Logging Analog".[0].Value.Value

Da war bei meinem Vorschlag der Punkt zu viel, was ja eigentlich logisch ist :?

Hilfreich wäre eine Zusammenfassung
Im Kern geht es darum, wie der Selektor im TWS angegeben werden muss.

[0].success["/groups/7/action/on"] wird mit den eckigen Klammern nicht akzeptiert und der TWS will

[0].success."/groups/7/action/on"

Oder bei Data["Logging Analog"][0].Value.Value möchte der TWS

Data."Logging Analog"[0].Value.Value

Da muss man den Punkt setzen und eine Klammer lassen.

Re: [3.5.1] API/JSON: Wie Antwort mit mehreren "Channels" Auswerten?

Verfasst: Do Nov 17, 2022 11:37 am
von Tomtheripper
Das ist m.M.n ein Interpretations-Fehler vom Json-Pathfinder.
Denn wie ich schonmal geschrieben habe: wenn man die Leerstelle zw. Logging Analog entfernt, setzt Json-Pathfinder den Punkt und die Klammer richtig.

Re: [3.5.1] API/JSON: Wie Antwort mit mehreren "Channels" Auswerten?

Verfasst: Sa Nov 19, 2022 1:30 am
von Chris M.
MrWilson hat geschrieben: Do Nov 17, 2022 11:19 am Im Kern geht es darum, wie der Selektor im TWS angegeben werden muss.

[0].success["/groups/7/action/on"] wird mit den eckigen Klammern nicht akzeptiert und der TWS will

[0].success."/groups/7/action/on"

Oder bei Data["Logging Analog"][0].Value.Value möchte der TWS

Data."Logging Analog"[0].Value.Value

Da muss man den Punkt setzen und eine Klammer lassen.
Nun, der TWS kann natürlich bzgl. Syntax machen was er will - dieses Verhalten ist aber nicht konform zum Standard und erzeugt folglich Verwirrung (und damit unnötigen Support-Aufwand)

@StefanW hier vielleicht nochmal beim Entwickler nachfragen ob das absichtlich so ist. Falls ja, dann sollte das ganz klar dokumentiert werden. Oder in das übliche Format gebracht werden das jeder JavaScript Kundige erwartet und der Json Pathfinder auch ausgibt.