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?