Seite 4 von 5
Re: Support: Http
Verfasst: Mo Nov 27, 2023 12:26 pm
von derNeueDet
Filter:
Sollte passen.
VG
Det
Re: Support: Http
Verfasst: Mo Nov 27, 2023 1:56 pm
von hulk66
Ne, das funktioniert nicht.
Code: Alles auswählen
user@Tower:~# curl -s http://192.168.0.5:17070/api/state?jq=.result.loadpoints[[.vehicleSoc
liefert nichts zurück.
Wenn dann so ...
Code: Alles auswählen
user@Tower:~# curl -s http://192.168.0.5:17070/api/state?jq=.loadpoints[].vehicleSoc
0
... wie ich es konfiguriert habe.
So kommt auch ein Wert zurück
Code: Alles auswählen
user@Tower:~# curl -s http://192.168.0.5:17070/api/state?jq=.result.loadpoints[].vehicleSoc
0
Re: Support: Http
Verfasst: Mo Nov 27, 2023 2:58 pm
von hulk66
Ich denke es sind die die eckigen Klammern. Diese verursachen, dass der Request überhaupt erst gar nicht rausgeht. Habe mal einen einfachen Webserver angesprochen und dass access log beobachtet. Solange die URL keine Klammern enthält, kommt der Request von der openWB an, mit Klammern kommt der Request nicht am Ziel an. Falls das korrekt ist, halte ich das für einen Bug.
Re: Support: Http
Verfasst: Mo Nov 27, 2023 3:06 pm
von derNeueDet
Sorry mit den Klammern, hab mich vertippt []
Re: Support: Http
Verfasst: Mo Nov 27, 2023 3:08 pm
von hulk66
Bestätigt. Gerade mit einem anderen Wert getestet. Mit diesem jq Filter jq=.result.batteryMode wird ein Wert angezeigt. Die eckigen Klammern führen in der openWB offenbar zu einer ungültigen URL.
Re: Support: Http
Verfasst: Mo Nov 27, 2023 3:16 pm
von derNeueDet
Wollte gerade sagen nutz den Json Soc, aber das gibt es nur bei den EVU/PV Modulen. SOC leider nicht.
Was steht denn im Logfile?
Edit: A host identified by an Internet Protocol literal address, version 6 [RFC3513] or later, is distinguished by enclosing the IP literal within square brackets ("[" and "]"). This is the only place where square bracket characters are allowed in the URI syntax.
Probier es mal mit html Encoded Klammern
VG
Det
Re: Support: Http
Verfasst: Mo Nov 27, 2023 3:40 pm
von hulk66
Ja, das habe ich auch gesehen. Klappt leider auch nicht. Ich denke, dass die URL im soc_http modul (oder wo auch immer) vernünftig "escaped"/encodiert werden muss.
For now: drei Möglichkeiten
1. Ich finde eine Möglichkeit in jq ein Array ohne Index ansprechen zu können (kenne mich damit nicht aus)
2. Ich schreibe den SoC über mqtt in das richtige openWB Topic (davon habe ich nicht den blassesten Schimmer)
3. Ich setze einen einfachen Proxy davor, der simple url (e.g. proxy/soc in die richtige URL umsetzt)
Am besten wäre, dass das Problem in openWB behoben wird.
Re: Support: Http
Verfasst: Mo Nov 27, 2023 4:26 pm
von derNeueDet
Hmm,
ich hab das gerade auf einer 1.9.303 bei mir getestet.
Eine Datei mit dem Name hulk66[1].html angelegt und die frage ich ab.
Hat mit [] und auch mit html escaped geklappt.
Noch ein weiterer Test:
Ich habe mal die URL entsprechend angepasst. auf deinen String und das kommt bei mir auch auf dem Apache an.
Code: Alles auswählen
127.0.1.1:80 127.0.0.1 - - [27/Nov/2023:17:32:43 +0100] "GET /hulk66[1].html?jq=.result.loadpoints[].vehicleSoc HTTP/1.1" 200 230 "-" "curl/7.64.0"
NAchtrag: Funktioniert bei mir auch aus der openWB V2.0 hier eird auch angezeigt, dass die URL sauber encoded wird
Code: Alles auswählen
2023-11-27 17:42:11,757 - {urllib3.connectionpool:452} - {DEBUG:fetch soc_ev0} - http://raspi4:80 "GET /hulk66%5B1%5D.html?jq=.result.loadpoints%5B%5D.vehicleSoc HTTP/1.1" 200 3
Und im Apache Log:
Code: Alles auswählen
127.0.1.1:80 192.168.178.89 - - [27/Nov/2023:17:43:07 +0100] "GET /hulk66%5B1%5D.html?jq=.result.loadpoints%5B%5D.vehicleSoc HTTP/1.1" 200 286 "-" "python-requests/2.25.1"
In der V2 wird das wohl encoded, in der V1.9 nicht. Bei mir kommt aber in beiden Systemen die passende Zahl an.
VG
Det
Re: Support: Http
Verfasst: Mi Nov 29, 2023 8:14 am
von hulk66
ok, erstmal vielen Dank für Deine Mühe! Lässt mich allerdings etwas ratlos zurück, warum es bei mir nicht klappt.
Re: Support: Http
Verfasst: Mi Nov 29, 2023 8:35 am
von derNeueDet
Kannst du noch mal das JSON schicken, wenn der SoC nicht 0 ist?