NEWS
WLED Adapter - nach Neustart keine Verbindungen mehr möglich
-
Systemdata Hardwaresystem: Synology Diskstation Arbeitsspeicher: 16GB Festplattenart: HDD Betriebssystem: DSM Nodejs-Version: 16.3 NPM-Version: 7.15.1 Installationsart: Docker-Container Image genutzt: Nein Hallo Zusammen,
mein WLED Adapter mach immer mal wieder Probleme. Grundsätzlich funktioniert die Anbindung der Lampe, allerdings verschluckt sich der Adapter irgendwie, wenn die Lampe oder er selbst neu gestartet wird. Dann hilft nur eine Neuinstallation des Adapters (Neustart ohne Wirkung). Danach geht alles einwandfrei, bis das nächste Mal einer der Komponenten neu gestartet wird. Die Lampe ist immer erreichbar, z.B. über die Smartphone App - auch wenn der Adapter nicht mehr kommuniziert.
Auffällig ist, dass im Log nichts steht, bis man versucht, einen Befehl an die Lampe zu senden:
Infos der WLED Lampe
Hat jemand Ideen, woran es liegt? Den Adapter jedes Mal neu zu installieren funktioniert zwar, da die Variablennamen identisch sind und dadurch die Skripte weiter laufen, aber zielführend ist es irgendwie nicht.
Danke und Gruß,
Percy
-
Hallo, @percy
Ich hatte das Problem auch, gehe mal auf die Konsole vom iobroker, dort mal folgenden Befehl absetzen:
ps auxww|grep wled
Wenn Du da mehrere Einträge siehst, als zwei, dann laufen dort zu viele Prozesse.
debian@iobroker:~$ ps auxww|grep wled iobroker 1702 0.1 1.0 661336 88648 ? Sl Nov01 6:32 io.wled.0 debian 31210 0.0 0.0 6088 892 pts/0 S+ 16:57 0:00 grep wled debian@iobroker:~$
Ich habe dann alle Prozesse gekillt und dann lief der Neustart von WLED sauber durch. Bei mir war es anscheinend ein Blockly, das diesen Fehler verursacht hat. Das Blockly steuert einen LED-Stripe am Garagentor. Anscheinend war das Script noch nicht zu Ende gelaufen und blieb als Prozess erhalten. Damit war aber der Stripe dann nicht mehr "ansprechbar". Bei mir dürfen es nur zwei sein (ein Stripe und einmal das grep). Wie das aussieht, wenn man mehrere Stripes mit WLED steuert, kann ich (noch) nicht sagen.
-
@opossum
Danke für deine Nachricht. Bei mir liefen tatsächlich mehrere Prozesse:der zusätzliche grep Prozess kommt übrigens durch die Abfrage mit dem Befehl ps.
Nachdem ich alle Prozesse bis auf den neuesten beendet habe (Befehl kill -9 [PID]) läuft WLED wieder einwandfrei.
Es darf neben dem grep Prozess also nur einen Treffer geben. Die Frage ist, was genau hier schief läuft. Ich habe nur ein Skript, welches beim Betreten des Raumes die WLED Lampe einschaltet, und beim Verlassen wieder ausschaltet. Das Problem tritt bei einem Neustart des Adapters (oder der kompletten ioBroker Instanz) im laufenden Betrieb auf. Irgendwas stimmt hier beim Adapter wohl nicht ganz. Ich werde auf github mal einen Issue öffnen.
Danke auf jeden Fall für deine Hilfe, jetzt weiß ich zumindest, wie ich das Problem umgehen kann. Wenn der Fehler nicht im Adapter zu finden ist, schreibe ich einfach ein Skript, welches überschüssige Prozesse automatisch beendet.
LG Percy
-
Nodejs-Version: 16.3
NPM-Version: 7.15.1Ist auch im Moment noch kritisch zu sehen. Insbesondere npm@7 läuft noch nicht gut mit dem ioBroker zusammen. Installier nodeJS@14 inkl. npm@6
-
Danke für den Tipp, bin jetzt Nodejs-Version 14.18.1 mit NPM Version 6.14.15 runter und werde mal beobachten, ob sich an dem Verhalten des WLED Adapters etwas ändert, bevor ich einen Issue auf github poste.
-
@percy Adapterversion ??
und pack bitte logs in entsprechende Code Tags.. nicht als screenshot
-
@arteck Die Adapterversion ist 0.6.3. Da ich bisher aber kaum weitere Berichte zu meinem Problem finden konnte, halte ich es für durchaus möglich, dass es an der NodeJS Version lag. Ich werde das beobachten und mich melden, falls das Problem weiterhin besteht.
-
@percy sagte in WLED Adapter - nach Neustart keine Verbindungen mehr möglich:
halte ich es für durchaus möglich, dass es an der NodeJS Version lag.
Oder am root Login...
-
Leider ist nach ein paar Tagen Ruhe das Problem wieder aufgetreten. Am Root-Login liegt es vermutlich nicht (läuft in einem Docker-Container), wieder sind mehrere Prozesse am Laufen:
Im Log ist folgendes zu finden:
2021-11-24 18:37:24.085 - error: wled.0 (5008) wled.0 already running 2021-11-24 18:37:24.088 - warn: wled.0 (5008) Terminated (ADAPTER_ALREADY_RUNNING): Without reason 2021-11-24 18:37:24.616 - error: wled.0 (5008) Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). 2021-11-24 18:37:24.616 - error: wled.0 (5008) unhandled promise rejection: Cannot read property 'error' of undefined 2021-11-24 18:37:24.619 - error: wled.0 (5008) TypeError: Cannot read property 'error' of undefined at Wled.onUnload (/opt/iobroker/node_modules/iobroker.wled/main.js:130:13) at Wled.emit (events.js:400:28) at process.stop (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:8747:22) at Object.onceWrapper (events.js:520:26) at process.emit (events.js:400:28) at process.exit (internal/process/per_thread.js:173:15) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:352:25) at processTicksAndRejections (internal/process/task_queues.js:95:5) 2021-11-24 18:37:24.620 - error: wled.0 (5008) Cannot read property 'error' of undefined
Wieder hat das Beenden des Prozesses das Problem gelöst. Von alleine schafft der Adapter es aber nicht, auch nach einem Neustart von selbigem bleibt das Problem bestehen.
-
@percy
NodeJS ist immer noch nicht sauber installiert. -
@thomas-braun Danke für die Rückmeldung. Woran ist das ersichtlich bzw. wie lässt sich das Lösen? Im Admin sieht für mich alles korrekt aus:
-
Da ich nicht aus deinen Screenshots kopieren kann...
Ich sehe es an den falschen Pfaden. Schau in meiner Signatur, da wird erklärt wie es richtig gemacht wird. -
@thomas-braun sagte in WLED Adapter - nach Neustart keine Verbindungen mehr möglich:
Da ich nicht aus deinen Screenshots kopieren kann..
Ich sehe es an den falschen Pfaden. -
Danke für den Hinweis, ist jetzt korrigiert:
iobroker@643148de1007:/opt/iobroker$ which nodejs node npm && nodejs -v && node -v && npm -v && apt policy nodejs /usr/bin/nodejs /usr/bin/node /usr/bin/npm v14.18.1 v14.18.1 6.14.15 nodejs: Installiert: 14.18.1-1nodesource1 Installationskandidat: 14.18.1-1nodesource1 Versionstabelle: *** 14.18.1-1nodesource1 500 500 https://deb.nodesource.com/node_14.x stretch/main amd64 Packages 100 /var/lib/dpkg/status 4.8.2~dfsg-1 500 500 http://deb.debian.org/debian stretch/main amd64 Packages
Ich werde das Verhalten nochmal beobachten, vielleicht ist der Fehler jetzt gelöst.
Danke für die Unterstützung soweit. -
@percy
Stretch? Aktualisier das mal auf was noch lebendiges. -
@thomas-braun gerne. Was wäre deine Empfehlung? Den Main Pfad dann einfach in nodesource.list anpassen?
-
@percy
Nein, das hat mit der nodesource.list nichts zu tun.
Aber mit den anderen list-Dateien in den Verzeichnis. Das ist aber kein Thema für diesen Thread, nichtmal für dieses Forum.
Aber Docker ist doch mehr so easy zu handeln, da kannst du ja flugs ein bullseye draufzimmern -
@thomas-braun dann werde ich bei Gelegenheit mal den Docker Container hochziehen. Für das vorliegende Problem sollte das aber keine Auswirkungen haben. Ich beobachte das Verhalten des Adapters jetzt erstmal weiter.
-
@percy sagte in WLED Adapter - nach Neustart keine Verbindungen mehr möglich:
iobroker@643148de1007:/opt/iobroker$
ich würde den User nicht iobroker nennen .
-
@opossum
Also bei mir verliert der Adapter in regelmäßigen Abständen den Connect zum WEMOS.
In der Instanz ist das Gerät mit seiner IP noch da. Aber rechts mit einem "roten Ball".
Auch ein Neustart des ioB und/oder des WEMOS hilft nicht. Der WEMOS ist aber erreichbar. App und Webinterface klappt.
Ich muss wenn den Adapter deinstallieren und neu installieren. Oder bei den Objekten den ganzen Baum löschen. Woher kommt da?
Die Abfrage vonps auxww|grep wled
zeigt keine n Einträge.
Habe jetzt den js-controller auf 3.3.22 geuppt. Jetzt ist zumindest der "Ball grün" also verbunden. Aber das Log geht immer auf online=> offline => online...