_websocket hat nichts mit webservice zu tun ?
Ankündigung
Einklappen
Keine Ankündigung bisher.
Support Thread für das Webservices Plugin
Einklappen
X
-
Moin,
ich bin auf ein "Problem" gestoßen, bei dem ich noch nicht ganz sicher bin, wie ich das abstellen kann.
Ich nutze das ws-Plugin mit 'mode': 'all' und greife über URLs auf zwei Items zu.
Das erzeugt mir auf der Konsole regelmäßig (bei jedem Zugriff) folgende Meldungen im Log:
Wie man sehen kann, sind die nicht durch den Log-Formatter gelaufen, also müssen sie irgendwo "anders" herkommen. Ich vermute, dass cherrypy die intern irgendwo erzeugt.Code:192.168.2.231 - - [12/Dec/2020:18:07:55] "GET /ws/items/d.stat.knx.last_data HTTP/1.1" 404 3872 "" "Python-urllib/3.7" 192.168.2.231 - - [12/Dec/2020:18:07:55] "GET /ws/items/d.stat.knx.activity HTTP/1.1" 404 3871 "" "Python-urllib/3.7"
Habt ihr damit schonmal zu tun gehabt, oder eine Idee, wie man das abstellen kann?
Kommentar
-
Hallo,
nach einem update von 1.6 auf 1.8.2 habe ich folgendes Problem mit dem webservice plugin.
Ich habe fast immer verschiedene webservice_set definiert wie z.B. global & knxweb oder wetter & knxweb damit jeweils nur die benötigten daten geliefert werden.
item-yaml
Unter 1.6 lieferte die URL http://192.168.178.32:8384/ws/itemset/knxweb/ dann alle items zurück die knxweb enthalten.PHP-Code:
Global:
...
FensterStatus:
name: FensterStatus
type: bool
webservices_set:
- global
- knxweb
webservices_data: full
....
Analog dazu hätte ich erwartet das unter 1.8.2 http://192.168.178.32:8384/ws/itemset/['knxweb']/ das gleiche liefert.
Statt dessen funktioniert nur die Kombinaton http://192.168.178.32:8384/ws/itemset/['global',%20'knxweb']/ oder es darf nur ein webservice_set definert sein global oder knxweb.
Auf der Plugin Webseite wird auch "nur" ein link zur kombinierten Liste geliefert Item-Set: ['global', 'knxweb']. Ich hätte ein Link für Global und einen für KNX erwartet ;-).
Ist das ein Bug oder gewollt so gebaut?
PlugIn Webseite:
Plugin : webservices v1.6.2
Plugin : Aktiv
Modus Alle Items Tipp: Durch Anhängen des Parameters "?mode=val|full" kann erzwungen werden, dass das Item / Itemset mit vollen oder einfachen Daten zurückgeliefert wird. Ansonsten greift die Konfiguration im Item via webservices_data.
Die folgenden Items und Sets können über die REST und die Simple WebService API gelesen und (bei str, num und bool Items) verändert werden:
Item-Set: ['global', 'knxweb'] Item-Set: ['global', 'knxweb'] Global.Anwesenheit Global.Anwesenheit bool Global.day Global.day bool Global.FensterStatus Global.FensterStatus bool
Kommentar
-
Hallo,
nach meinem Update letztes Jahr von 1.6 auf die 1.8.2 musste ich den WebService
von "http://192.168.178.32:8384/ws/itemset/knxweb/" auf "http://192.168.178.32:8384/ws/items/" umstellen.
Nun bekomme ich beim Aufruf der URL ein "Oops, Error 500: ..." zurück.PHP-Code:Debian 10 Buster
Python 3.7.3 final
SmartHomeNG Version: 1.8.2.master
SmartHomeNG Plugins Version:1.8.2.master
...
cherrypy 8.1.2 18.3.0
...
Im Log finde ich dann folgenden Error.
Was ich merkwürdig finde ist das es unmittelbar nach einem "systemctl restart smarthome" kurz funktioniert und dann kommt die Fehlermeldung.PHP-Code:2022-06-23 22:18:09 ERROR cherrypy.error.140075533087464 [23/Jun/2022:22:18:09] HTTP
> Traceback (most recent call last):
> File "/usr/local/lib/python3.7/dist-packages/cherrypy/_cprequest.py", line 638, in respond
> self._do_respond(path_info)
> File "/usr/local/lib/python3.7/dist-packages/cherrypy/_cprequest.py", line 702, in _do_respond
> response.finalize()
> File "/usr/local/lib/python3.7/dist-packages/cherrypy/_cprequest.py", line 898, in finalize
> content = self.collapse_body()
> File "/usr/local/lib/python3.7/dist-packages/cherrypy/_cprequest.py", line 856, in collapse_body
> new_body = b''.join(self.body)
> File "/usr/local/lib/python3.7/dist-packages/cherrypy/_json.py", line 24, in encode
> for chunk in _encode(value):
> File "/usr/lib/python3.7/json/encoder.py", line 431, in _iterencode
> yield from _iterencode_dict(o, _current_indent_level)
> File "/usr/lib/python3.7/json/encoder.py", line 405, in _iterencode_dict
> yield from chunks
> File "/usr/lib/python3.7/json/encoder.py", line 405, in _iterencode_dict
> yield from chunks
> File "/usr/lib/python3.7/json/encoder.py", line 376, in _iterencode_dict
> raise TypeError(f'keys must be str, int, float, bool or None, '
> TypeError: keys must be str, int, float, bool or None, not date
Hat jemand einen Tipp wie ich mehr Informationen von cherrypy herausbekommen kann?
Kommentar


Kommentar