Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Error/Bug
    4. [gelöst] Fehler bei der Verbindung zu Websocket

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Fehler bei der Verbindung zu Websocket

    This topic has been deleted. Only users with topic management privileges can see it.
    • Marcus Schmitt
      Marcus Schmitt last edited by Marcus Schmitt

      Systemdata Bitte Ausfüllen
      Hardwaresystem: Pi4
      Arbeitsspeicher: 4GB
      Festplattenart: SD-Karte
      Betriebssystem: Raspian
      Node-Version: 14.21.1
      Nodejs-Version: 14.21.1
      NPM-Version: 6.14.7
      Installationsart: Skript
      Image genutzt: Nein

      Hallo zusammen,
      ich versuche grade eine eigene kleine Anwendung (Javascript/TypeScript) gegen ioBroker zu schalten.
      Ich nutze um inital die Daten abzurufen den Rest-Adapter, aber um aktuell zu sein, und um die States zu ändern, nutze ich den im Web-Adapter integrierten WebSocket-Server.

      Warum auch immer hatte ich bis gestern keine Probleme mit dem WebSocket, jetzt neu ist aber, dass, wenn ich die Verbindung aufbaue, der http-server sich verabschiedet und neu startet.

      Folgende Fehlermeldung finde ich im Log:

      2023-01-11 10:32:54.679  - info: admin.0 (326281) <== Disconnect system.user.admin from ::ffff:192.168.2.48 ownview2
      2023-01-11 10:32:54.758  - info: admin.0 (326281) ==> Connected system.user.admin from ::ffff:192.168.2.48
      2023-01-11 10:32:54.800  - error: admin.0 (326281) uncaught exception: Cannot read property '0' of undefined
      2023-01-11 10:32:54.801  - error: admin.0 (326281) TypeError: Cannot read property '0' of undefined
          at /opt/iobroker/node_modules/@iobroker/ws-server/index.js:152:115
          at Array.forEach (<anonymous>)
          at Immediate.<anonymous> (/opt/iobroker/node_modules/@iobroker/ws-server/index.js:152:83)
          at processImmediate (internal/timers.js:464:21)
      2023-01-11 10:32:54.801  - error: admin.0 (326281) Cannot read property '0' of undefined
      2023-01-11 10:32:54.835  - info: admin.0 (326281) terminating http server on port 8081
      2023-01-11 10:32:54.844  - info: admin.0 (326281) terminating
      2023-01-11 10:32:54.846  - warn: admin.0 (326281) Terminated (UNCAUGHT_EXCEPTION): Without reason
      2023-01-11 10:32:54.947  - error: host.iobroker Caught by controller[0]: TypeError: Cannot read property '0' of undefined
      2023-01-11 10:32:54.947  - error: host.iobroker Caught by controller[0]:     at /opt/iobroker/node_modules/@iobroker/ws-server/index.js:152:115
      2023-01-11 10:32:54.948  - error: host.iobroker Caught by controller[0]:     at Array.forEach (<anonymous>)
      2023-01-11 10:32:54.948  - error: host.iobroker Caught by controller[0]:     at Immediate.<anonymous> (/opt/iobroker/node_modules/@iobroker/ws-server/index.js:152:83)
      2023-01-11 10:32:54.948  - error: host.iobroker Caught by controller[0]:     at processImmediate (internal/timers.js:464:21)
      2023-01-11 10:32:54.948  - error: host.iobroker instance system.adapter.admin.0 terminated with code 1 (JS_CONTROLLER_STOPPED)
      2023-01-11 10:32:54.949  - info: host.iobroker Restart adapter system.adapter.admin.0 because enabled
      2023-01-11 10:33:25.022  - info: host.iobroker instance system.adapter.admin.0 started with pid 326444
      

      Meine WebSocket-Client Klasse:

      import { AdminConnection } from "@iobroker/socket-client";
      
      export class WebSocketClient {
      
          private static CONNECTION:Promise<AdminConnection>
      
          private async connect(): Promise<AdminConnection> {
              const adminConnection = new AdminConnection({
                  protocol: 'ws',
                  host: '192.168.2.4',
                  port: 8081,
                  admin5only: false,
                  autoSubscribes: [],
                  name: "ownview"
                  // optional: other options
      
      
              });
              await adminConnection.startSocket();
              await adminConnection.waitForFirstConnection();
              return adminConnection;
          }
      
          public async getAdminConnection() :  Promise<AdminConnection> {
              if (WebSocketClient.CONNECTION === undefined) {
                  WebSocketClient.CONNECTION = this.connect();
              }
              return WebSocketClient.CONNECTION;
          }
      }
      

      hat von euch einer eine Idee?

      Marcus Schmitt 1 Reply Last reply Reply Quote 0
      • Marcus Schmitt
        Marcus Schmitt @Marcus Schmitt last edited by

        Ich habe das Problem gefunden.
        Es war ein Bug in meiner Anwendung.
        Ich habe initial einzelne Objekte per REST abgeholt, anschließend versucht mit der ID den state zu subscriben.
        Ich habe aber nicht gewartet, bis die REST-Antwort da war, somit war die ID noch leer bzw. undefined.
        Das hat dann dazu geführt, dass der admin-Adapter sich zerstört hat und restartet werden musste.

        Der Thread ist somit für mich erledigt.

        arteck 1 Reply Last reply Reply Quote 0
        • arteck
          arteck Developer Most Active @Marcus Schmitt last edited by

          @marcus-schmitt setzt du den title auf gelöst bitte

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          Support us

          ioBroker
          Community Adapters
          Donate

          836
          Online

          31.8k
          Users

          80.0k
          Topics

          1.3m
          Posts

          2
          3
          216
          Loading More Posts
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes
          Reply
          • Reply as topic
          Log in to reply
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
          The ioBroker Community 2014-2023
          logo