NEWS
Shelly Adapter startet nicht mit COAP und IP-Aliasen
-
Systemdata Bitte Ausfüllen Hardwaresystem: Docker buanet/iobroker:latest, hostmode Node-Version: v10.19.0 NPM-Version: 6.13.4 Shelly Adapter: 3.1.6 Betriebssystem: Debian 10 Hallo,
der Shelly-Adapter startet nicht in der COAP-Version, wenn auf einem Interface mindestens ein IP-Alias gesetzt ist. Per Default wird versucht auf allen IP-Interfacen ein Multicast-Listener aufzumachen. Ist ein IP-Alias gesetzt, wird versucht ein zusätzlicher Listener aufzumachen. Allerdings ist auf dem physikalischen Interface bereits ein Listener offen, was zu einer Exception führt und der Adapter nicht startet.
lo: 127.0.0.1 => OK eth0: 10.0.0.1 => OK eth0.1: 10.0.0.2 => Exception EADDRINUSEKonsolen-Ausgabe manueller start:
2020-03-15 22:45:38.031 - info: shelly.0 (1428) starting. Version 3.1.6 in /opt/iobroker/node_modules/iobroker.shelly, node: v10.19.0 2020-03-15 22:45:38.083 - info: shelly.0 (1428) Starting Shelly adapter in CoAP modus. Exception: Error: addMembership EADDRINUSE/Error: addMembership EADDRINUSE addMembership EADDRINUSE Error: addMembership EADDRINUSE at Socket.addMembership (dgram.js:581:11) at /opt/iobroker/node_modules/coap/lib/server.js:234:26 at Array.forEach (<anonymous>) at Socket.<anonymous> (/opt/iobroker/node_modules/coap/lib/server.js:233:44) at Object.onceWrapper (events.js:286:20) at Socket.emit (events.js:198:13) at startListening (dgram.js:128:10) at state.handle.lookup (dgram.js:249:7) at process._tickCallback (internal/process/next_tick.js:63:19) 2020-03-15 22:45:38.110 - error: shelly.0 (1428) Exception: Error: addMembership EADDRINUSE 2Dazu habe ich folgendes im Source-Code gefunden:
In Datei "node_modules/coap/lib/server.js", Zeile 80 ist bereits vorgesehen, anstatt auf allen Interface einen Multicast-Listener aufzumachen, dies nur auf einem Interface zu tun. Hierzu müsste der Funktion CoAPServer zusätzlich ein Wert für options.multicastInterface übergeben werden.
Soweit ich sehen kann erfolgt der Aufruf dieser Funktion in "node_modules/shelly-iot/index.js", Zeile 170:
this.coapServer = coap.createServer({ multicastAddress: '224.0.1.187' });Hier gibt es momentan keine Möglichleit, eine Variable mit zu setzen oder zu übergeben. Könnte das nicht als Option in die COAP-Einstellungen des Adapters mit aufgenommen werden?
Oder habe ich etwas übersehen?
Grüße,
Magnus
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden