Ankündigung

Einklappen
Keine Ankündigung bisher.

wss Kommunikation v1.9.4

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

    wss Kommunikation v1.9.4

    Hallo,

    seit dem Update auf v1.9.4 habe ich Probleme mit dem Websocket-Modul bei verschlüsselter Kommunikation, auf v1.9.3 war alles in Ordung bzw. läuft auch jetzt noch. Die normale Kommunikation über ws 2424 läuft aber auch auf v1.9.4. einwandfrei.

    Nach einem Neustart von SHNG läuft zunächst alles gut bis ich die SSL Smartvisu Seite aufrufe oder aktualisiere und diese sich versucht über den wss zu verbinden, dann erscheinen folgende Fehler und der ganze Websocket streikt, auch der nicht verschlüsselte.

    Code:
    2023-03-15  17:09:18 NOTICE   lib.smarthome       --------------------   Init SmartHomeNG v1.9.4.1-e8adc9fc7.develop   --------------------
    2023-03-15  17:09:18 NOTICE   lib.smarthome       Running in Python interpreter 'v3.11.2 final', from directory /usr/local/smarthome
    2023-03-15  17:09:18 NOTICE   lib.smarthome        - operating system 'Ubuntu 18.04.6 LTS' (pid=18577)
    2023-03-15  17:09:20 NOTICE   lib.smarthome        - on 'Intel Xeon E3-12xx v2 (Ivy Bridge, IBRS)'
    2023-03-15  17:09:21 NOTICE   lib.smarthome        - Nutze Feiertage für Land 'DE', Provinz 'None', 1 benutzerdefinierte(r) Feiertag(e) definiert
    2023-03-15  17:09:22 WARNING  lib.module          Not loading module Mqtt from section 'mqtt': Module is disabled
    2023-03-15  17:09:30 NOTICE   lib.smarthome       --------------------   SmartHomeNG initialization finished   --------------------
    2023-03-15  17:12:21 ERROR    websockets.server   connection handler failed
    > Traceback (most recent call last):
    >   File "/home/administrator/.local/lib/python3.11/site-packages/websockets/legacy/server.py", line 236, in handler
    >     await self.ws_handler(self)
    >   File "/home/administrator/.local/lib/python3.11/site-packages/websockets/legacy/server.py", line 1175, in _ws_handler
    >     return await cast(
    >            ^^^^^^^^^^^
    >   File "/usr/local/smarthome/modules/websocket/__init__.py", line 315, in handle_new_connection
    >     await self.unregister(websocket)
    >   File "/usr/local/smarthome/modules/websocket/__init__.py", line 332, in unregister
    >     await payload['protocol'].cleanup_connection(websocket)
    >   File "/usr/local/smarthome/modules/websocket/smartvisu.py", line 104, in cleanup_connection
    >     client_addr = self.client_address(websocket)
    >                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    >   File "/usr/local/smarthome/modules/websocket/__init__.py", line 356, in client_address
    >     return websocket.remote_address[0] + ':' + str(websocket.remote_address[1])
    >            ~~~~~~~~~~~~~~~~~~~~~~~~^^^
    > TypeError: 'NoneType' object is not subscriptable
    2023-03-15  17:12:23 ERROR    websockets.server   connection handler failed
    > Traceback (most recent call last):
    >   File "/home/administrator/.local/lib/python3.11/site-packages/websockets/legacy/server.py", line 236, in handler
    >     await self.ws_handler(self)
    >   File "/home/administrator/.local/lib/python3.11/site-packages/websockets/legacy/server.py", line 1175, in _ws_handler
    >     return await cast(
    >            ^^^^^^^^^^^
    >   File "/usr/local/smarthome/modules/websocket/__init__.py", line 298, in handle_new_connection
    >     await self.register(websocket)
    >   File "/usr/local/smarthome/modules/websocket/__init__.py", line 323, in register
    >     await self.log_connection_event('added', websocket)
    >   File "/usr/local/smarthome/modules/websocket/__init__.py", line 349, in log_connection_event
    >     self.logger.dbghigh(f"- user: {self.client_address(u)}    path: {u.path}    secure: {u.secure}    port: {u.port}")
    >                                    ^^^^^^^^^^^^^^^^^^^^^^
    >   File "/usr/local/smarthome/modules/websocket/__init__.py", line 356, in client_address
    >     return websocket.remote_address[0] + ':' + str(websocket.remote_address[1])
    >            ^^^^^^^^^^^^^^^^^^^^^^^^
    >   File "/home/administrator/.local/lib/python3.11/site-packages/websockets/legacy/protocol.py", line 422, in remote_address
    >     return transport.get_extra_info("peername")
    >            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    >   File "/usr/lib/python3.11/asyncio/sslproto.py", line 91, in get_extra_info
    >     return self._ssl_protocol._get_extra_info(name, default)
    >            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    > AttributeError: 'NoneType' object has no attribute '_get_extra_info'

    In der config siehts so aus.
    Code:
    websocket:
        module_name: websocket
        ip: 0.0.0.0
        port: 2424
        tls_port: 2425
        tls_cert: shng.cer
        tls_key: shng.key
        use_tls: true

    ​Benutzt noch jemand SSL über wss und hat das Problem?

    Lg

    #2
    Hast Du SmartHomeNG auch unter Python 3.11 laufen?
    Viele Grüße
    Martin

    There is no cloud. It's only someone else's computer.

    Kommentar


      #3
      Zitat von Msinn Beitrag anzeigen
      Hast Du SmartHomeNG auch unter Python 3.11 laufen?
      Ja

      Kommentar


        #4
        Kannst Du zum Test in modules/websocket/__init__.py mal folgendes ändern:
        Zeile 355/356 von:
        Code:
            def client_address(self, websocket):
                return websocket.remote_address[0] + ':' + str(websocket.remote_address[1])
        ​
        in
        Code:
            def client_address(self, websocket):
                if websocket is None:
                    return 'unknown (ssl)'
                return websocket.remote_address[0] + ':' + str(websocket.remote_address[1])
        ​
        Viele Grüße
        Martin

        There is no cloud. It's only someone else's computer.

        Kommentar


          #5
          Zitat von Msinn Beitrag anzeigen
          Kannst Du zum Test in modules/websocket/__init__.py mal folgendes ändern:
          Code:
          2023-03-15  20:47:11 NOTICE   lib.smarthome       --------------------   Init SmartHomeNG v1.9.4.1-e8adc9fc7.develop   --------------------
          2023-03-15  20:47:11 NOTICE   lib.smarthome       Running in Python interpreter 'v3.11.2 final', from directory /usr/local/smarthome
          2023-03-15  20:47:11 NOTICE   lib.smarthome        - operating system 'Ubuntu 18.04.6 LTS' (pid=3525)
          2023-03-15  20:47:13 NOTICE   lib.smarthome        - on 'Intel Xeon E3-12xx v2 (Ivy Bridge, IBRS)'
          2023-03-15  20:47:14 NOTICE   lib.smarthome        - Nutze Feiertage für Land 'DE', Provinz 'None', 1 benutzerdefinierte(r) Feiertag(e) definiert
          2023-03-15  20:47:15 WARNING  lib.module          Not loading module Mqtt from section 'mqtt': Module is disabled
          2023-03-15  20:47:24 NOTICE   lib.smarthome       --------------------   SmartHomeNG initialization finished   --------------------
          2023-03-15  20:48:07 ERROR    websockets.server   connection handler failed
          > Traceback (most recent call last):
          >   File "/home/administrator/.local/lib/python3.11/site-packages/websockets/legacy/server.py", line 236, in handler
          >     await self.ws_handler(self)
          >   File "/home/administrator/.local/lib/python3.11/site-packages/websockets/legacy/server.py", line 1175, in _ws_handler
          >     return await cast(
          >            ^^^^^^^^^^^
          >   File "/usr/local/smarthome/modules/websocket/__init__.py", line 315, in handle_new_connection
          >     await self.unregister(websocket)
          >   File "/usr/local/smarthome/modules/websocket/__init__.py", line 332, in unregister
          >     await payload['protocol'].cleanup_connection(websocket)
          >   File "/usr/local/smarthome/modules/websocket/smartvisu.py", line 104, in cleanup_connection
          >     client_addr = self.client_address(websocket)
          >                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          >   File "/usr/local/smarthome/modules/websocket/__init__.py", line 358, in client_address
          >     return websocket.remote_address[0] + ':' + str(websocket.remote_address[1])
          >            ~~~~~~~~~~~~~~~~~~~~~~~~^^^
          > TypeError: 'NoneType' object is not subscriptable
          2023-03-15  20:48:08 ERROR    websockets.server   connection handler failed
          > Traceback (most recent call last):
          >   File "/home/administrator/.local/lib/python3.11/site-packages/websockets/legacy/server.py", line 236, in handler
          >     await self.ws_handler(self)
          >   File "/home/administrator/.local/lib/python3.11/site-packages/websockets/legacy/server.py", line 1175, in _ws_handler
          >     return await cast(
          >            ^^^^^^^^^^^
          >   File "/usr/local/smarthome/modules/websocket/__init__.py", line 298, in handle_new_connection
          >     await self.register(websocket)
          >   File "/usr/local/smarthome/modules/websocket/__init__.py", line 323, in register
          >     await self.log_connection_event('added', websocket)
          >   File "/usr/local/smarthome/modules/websocket/__init__.py", line 349, in log_connection_event
          >     self.logger.dbghigh(f"- user: {self.client_address(u)}    path: {u.path}    secure: {u.secure}    port: {u.port}")
          >                                    ^^^^^^^^^^^^^^^^^^^^^^
          >   File "/usr/local/smarthome/modules/websocket/__init__.py", line 358, in client_address
          >     return websocket.remote_address[0] + ':' + str(websocket.remote_address[1])
          >            ^^^^^^^^^^^^^^^^^^^^^^^^
          >   File "/home/administrator/.local/lib/python3.11/site-packages/websockets/legacy/protocol.py", line 422, in remote_address
          >     return transport.get_extra_info("peername")
          >            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          >   File "/usr/lib/python3.11/asyncio/sslproto.py", line 91, in get_extra_info
          >     return self._ssl_protocol._get_extra_info(name, default)
          >            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          > AttributeError: 'NoneType' object has no attribute '_get_extra_info'
          2023-03-15  20:48:08 ERROR    websockets.server   connection handler failed
          > Traceback (most recent call last):
          >   File "/home/administrator/.local/lib/python3.11/site-packages/websockets/legacy/server.py", line 236, in handler
          >     await self.ws_handler(self)
          >   File "/home/administrator/.local/lib/python3.11/site-packages/websockets/legacy/server.py", line 1175, in _ws_handler
          >     return await cast(
          >            ^^^^^^^^^^^
          >   File "/usr/local/smarthome/modules/websocket/__init__.py", line 298, in handle_new_connection
          >     await self.register(websocket)
          >   File "/usr/local/smarthome/modules/websocket/__init__.py", line 323, in register
          >     await self.log_connection_event('added', websocket)
          >   File "/usr/local/smarthome/modules/websocket/__init__.py", line 349, in log_connection_event
          >     self.logger.dbghigh(f"- user: {self.client_address(u)}    path: {u.path}    secure: {u.secure}    port: {u.port}")
          >                                    ^^^^^^^^^^^^^^^^^^^^^^
          >   File "/usr/local/smarthome/modules/websocket/__init__.py", line 358, in client_address
          >     return websocket.remote_address[0] + ':' + str(websocket.remote_address[1])
          >            ^^^^^^^^^^^^^^^^^^^^^^^^
          >   File "/home/administrator/.local/lib/python3.11/site-packages/websockets/legacy/protocol.py", line 422, in remote_address
          >     return transport.get_extra_info("peername")
          >            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          >   File "/usr/lib/python3.11/asyncio/sslproto.py", line 91, in get_extra_info
          >     return self._ssl_protocol._get_extra_info(name, default)
          >            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          > AttributeError: 'NoneType' object has no attribute '_get_extra_info'​
          Habe gerade festgestellt, dass der Fehler erst kommt wenn ich die Visu-Seite aktualisiere. Sprich wenn ich die URL eingebe und die https Seite das erste mal öffnet, klappt die Verbindung. Es werden mir Werte (Temperaturen, Licher, Fenster, usw) angezeigt, ich kann durch die Räume wechseln und sogar Items schalten. Es ist sogar möglich die Visu mehrmals zu öffnen. Wenn ich jetzt aber eine der Visus aktualisiere ist die Verbindung dieser Seite weg, die anderen haben sie noch bis ich auch diese aktualisiere. Eine neue Visu aufmachen klappt aber nicht mehr, nachdem eine abgeschossen wurde.
          Zuletzt geändert von hijacker7; 15.03.2023, 21:03.

          Kommentar


            #6
            Sorry das if muss
            Code:
            if websocket.remote_address is None:
            lauten.
            Viele Grüße
            Martin

            There is no cloud. It's only someone else's computer.

            Kommentar


              #7
              Läuft wieder wie gewohnt!

              Danke

              Kommentar

              Lädt...
              X