Ankündigung

Einklappen
Keine Ankündigung bisher.

Support Thread für das Webservices Plugin

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #61
    _websocket hat nichts mit webservice zu tun ?

    Kommentar


      #62
      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:

      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"
      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.

      Habt ihr damit schonmal zu tun gehabt, oder eine Idee, wie man das abstellen kann?

      Kommentar


        #63
        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
        PHP-Code:

        Global:
        ...
          
        FensterStatus:
            
        nameFensterStatus
            type
        bool
            webservices_set
        :
                - global
                - 
        knxweb
            webservices_data
        full
        .... 
        Unter 1.6 lieferte die URL http://192.168.178.32:8384/ws/itemset/knxweb/ dann alle items zurück die knxweb enthalten.
        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:



        Kommentar


          #64
          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.
          PHP-Code:
          Debian 10 Buster
          Python 3.7.3 
          final
          SmartHomeNG Version1.8.2.master
          SmartHomeNG Plugins Version
          :1.8.2.master
          ...
          cherrypy 8.1.2 18.3.0
          ... 
          Nun bekomme ich beim Aufruf der URL ein "Oops, Error 500: ..." zurück.

          Im Log finde ich dann folgenden Error.
          PHP-Code:
          2022-06-23 22:18:09 ERROR cherrypy.error.140075533087464 [23/Jun/2022:22:18:09HTTP
          Traceback (most recent call last):
          File "/usr/local/lib/python3.7/dist-packages/cherrypy/_cprequest.py"line 638in respond
          self._do_respond(path_info)
          File "/usr/local/lib/python3.7/dist-packages/cherrypy/_cprequest.py"line 702in _do_respond
          response.finalize()
          File "/usr/local/lib/python3.7/dist-packages/cherrypy/_cprequest.py"line 898in finalize
          content self.collapse_body()
          File "/usr/local/lib/python3.7/dist-packages/cherrypy/_cprequest.py"line 856in collapse_body
          new_body b''.join(self.body)
          File "/usr/local/lib/python3.7/dist-packages/cherrypy/_json.py"line 24in encode
          > for chunk in _encode(value):
          File "/usr/lib/python3.7/json/encoder.py"line 431in _iterencode
          > yield from _iterencode_dict(o_current_indent_level)
          File "/usr/lib/python3.7/json/encoder.py"line 405in _iterencode_dict
          > yield from chunks
          File "/usr/lib/python3.7/json/encoder.py"line 405in _iterencode_dict
          > yield from chunks
          File "/usr/lib/python3.7/json/encoder.py"line 376in _iterencode_dict
          raise TypeError(f'keys must be str, int, float, bool or None, '
          TypeErrorkeys must be strintfloatbool or Nonenot date 
          Was ich merkwürdig finde ist das es unmittelbar nach einem "systemctl restart smarthome" kurz funktioniert und dann kommt die Fehlermeldung.

          Hat jemand einen Tipp wie ich mehr Informationen von cherrypy herausbekommen kann?

          Kommentar

          Lädt...
          X