NEWS
Harmony Adapter: lost hub + Adapter neustart
-
> Irgendwie bricht die Verbindung zum Hub ab
Der Grund für den Abbruch der Verbindung ist bei mir der das ich ihn komplett abschalte.> was dann passiert löst einen Absturz und Neustart des Adapter aus?
Ja.> Du konntest das beheben indem du direkt wieder ein connect sendest, aber nicht dass die Verbindung überhaupt abbricht?
Nein. Das ist was anderes. Es kommt vor das keine Antwort mehr vom Hub kommt, obwohl er noch da ist und erreichbar, dann reicht ein neuer Connect zum Hub aus.> was passiert bei deiner Lösung wenn der Hub wirklich weg ist und man nicht neu Verbinden kann?
Gar nichts da KeepAlive nur ausgeführt wird wenn ein Hub verbunden ist.Ob der Hub noch da ist oder nicht prüft KeepAlive ja gar nicht, die verhindert nur das der Hub den Adapter(client) nicht wegen inaktivität abmeldet.
Ob der Hub noch da ist wird von Harmony Hub JS-Discover geprüft. Ist der Hub weg/die Verbindung Unterbrochen, wird Discover Neu gestartet. Beim Neustart wird Discover aber nicht richtig beendet und deswegen ist weiterhin der Port 5224 belegt, beim Neustart von Discover löst das den Fehler aus und der Harmony Adapter wird Neu gestartet.
-
@Jey Cee:Ob der Hub noch da ist oder nicht prüft KeepAlive ja gar nicht, die verhindert nur das der Hub den Adapter(client) nicht wegen inaktivität abmeldet.
Ob der Hub noch da ist wird von Harmony Hub JS-Discover geprüft. Ist der Hub weg/die Verbindung Unterbrochen, wird Discover Neu gestartet. Beim Neustart wird Discover aber nicht richtig beendet und deswegen ist weiterhin der Port 5224 belegt, beim Neustart von Discover löst das den Fehler aus und der Harmony Adapter wird Neu gestartet. `
Also wenn der Hub von keepAlive nicht mehr erreicht werden kann kommt nicht das hub lost von discover? Dann könnte man die beiden Situationen immerhin gut unterscheiden. Die gesamte Connect/Disconnect/Reconnect Geschichte müsste nochmal überarbeitet werden denke ich.
Dabei müsste dann folgendes berücksichtigt werden:
-Der Adapter wird hin und wieder die Verbindung zum Hub verlieren, das kann man mit der keepAlive Funktion prüfen und bei bedarf neu verbinden
-Ob der Hub wirklich verfügbar ist oder offline bzw. stromlos wird mit dem discover geprüft, ist er verfügbar wird er verbunden, ist er nicht mehr verfügbar wird der client zerstört.
-discover kann man nicht korrekt stoppen, da dabei der Port nicht frei wird. kann man discover einfach durchlaufen lassen? Wieso wird es aktuell überhaupt neugestartet (weiß ich nicht mehr :lol: )?
Ich kann leider erst in 7 Tagen wieder dran arbeiten, wenn du willst kannst du aber gerne den Adapter forken und gucken ob du was verbessern kannst
-
Fork… was? Bin kein programmierer und hab mit Mühe und not die Zusammenhänge im Adapter verstanden. Ich kann ein bisschen rum spielen und vielleicht find ich eine Lösung, zu der ich dir dann auch gerne den code gebe, aber mit github hab ich nix am Hut.
Gesendet von meinem Jolla mit Tapatalk
-
Kein Problem, ich werde das dann nächste Woche irgendwann mal angehen. Du hast auf jeden Fall schon gut geholfen
-
So ich hab den Fehler gefunden. Du hattest ihn aber wohl auch schon entdeckt, gleich am Anfang der harmony.js steht: fix discover stop.
Damit wolltest du wohl die Fehlerhafte Funktion in der ping.js von discover Überschreiben. Das scheint aber nicht funktioniert zu haben. Ich hab das direkt in der ping.js geändert und es klappt. Deshalb hab ich darum gebeten das im Original auf Github ein zu pflegen.
Wäre aber auch zu einfach wenn jetzt alles gut wäre. Dafür schmeißt er jetzt einen anderen Fehler aus und startet den Adapter neu.
Ich weiss zwar schon wie man mit dem Problem umgehen kann, aber ich weiss noch nicht wo das hin muss. Also weiter suchen :x
PS: Jetzt bin ich halt doch bei Github :lol:
-
hehe super. Ja ich erinnere mich dunkel daran, dass da was war mit dem stoppen beim discover.
Ich habe hier mal aus der Ferne was zusammen gewurstelt, da wird discover überhaupt nicht mehr gestoppt und läuft die ganze zeit weiter. Vielleicht kannst du diese Version ja mal testen wenn du Zeit hast.
422_harmony.js -
Hab grad ne email bekommen, dass der Fix in discover eingepflegt wurde.
Gesendet von meinem Jolla mit Tapatalk
-
Das ist schonmal gut, ich nehme dann in der nächsten Version den stop Fix komplett raus. Fände es aber noch besser wenn man den Discover durchlaufen lassen kann, ich glaube dass ich den gestoppt hatte war auch wegen einem Bug, da er nach einem Lost keine Hubs mehr gefunden hatte. Ich glaube das funktioniert jetzt korrekt.
-
Moin,
ich habe 2 Hubs. Küche und Wohnzimmer. Nur der Wohnzimmer zeigt ähnliche Symptome. Verbindung wird hergestellt, dann wieder verloren und Adapter wird neu gestartet. Fehlerlog kann ich heute Abend gern mal ranhängen, wenn ich zu Hause wieder darauf zugreifen kann.
Macht es Sinn die oben angehängte harmony.js auszutauschen und zu probieren?
Gruß, Markus
-
Das beste wäre du kopierst logs vom alten Adapter, tauschst dann mal aus und guckst ob es besser wird
Hast du beide Hubs eingebunden? Also laufen 2 Adapter gleichzeitig?
-
Das beste wäre du kopierst logs vom alten Adapter, tauschst dann mal aus und guckst ob es besser wird
`
Ok mach ich so. Macht ja Sinn. Dann hat man die Logs vorher/nachher zum Vergleich. Hätte vermutlich aber ohnehin die alten Logs erstmal rein instinktiv gepostet.
@Pman:Hast du beide Hubs eingebunden? Also laufen 2 Adapter gleichzeitig? `
Nein, es läuft aktuell nur ein Adapter (mit Wohnzimmer). Es werden aber aber beide Hubs gefunden/erkannt und der Wohnzimmer immer wieder verloren. Ich hatte einen 2. mit Küche versucht zu konfigurieren, aber da lief dann plötzlich gar nichts mehr und das Log strotzte vor Fehlern (Details habe ich nicht mehr im Kopf). Kann ich aber gern nochmal probieren und dann die Logs liefern, falls das hilft. -
Es werden aber aber beide Hubs gefunden/erkannt und der Wohnzimmer immer wieder verloren. Ich hatte einen 2. mit Küche versucht zu konfigurieren, aber da lief dann plötzlich gar nichts mehr und das Log strotzte vor Fehlern (Details habe ich nicht mehr im Kopf). Kann ich aber gern nochmal probieren und dann die Logs liefern, falls das hilft. `
Kannst du dir sparen, hätte mich nämlich gewundert wenn zwei Adapter gleichzeitig funktionieren würden. So wie der Adapter aktuell funktioniert, mit dem discover, kann nur ein Adapter gleichzeitig laufen, da der Adapter einen bestimmten Netzwerkport verwendet. Unterstützung für mehrere Hubs muss ich daher direkt in den Adapter einbauen. Vorher sollte aber erstmal ein Adapter alleine stabil laufen.
-
Vorher sollte aber erstmal ein Adapter alleine stabil laufen. `
Das macht natürlich Sinn. Btw macht die Hub-Firmware evtl. einen Unterschied? Der Wohnzimmer Hub ist glaube ich neulich auf die aktuelleste Version aktualisiert. Der in der Küche meine ich noch nicht. Der wird auch nicht ganz so oft gebraucht. -
Mein hub ist eigentlich immer auf der neusten Version bzw. Beta Version und der Fehler zieht sich durch alle bisherigen Versionen. Wie oft kommt das bei dir denn? Bei mir passiert es im Moment so alle paar Stunden, vielleicht 3-4 mal am Tag. Die derzeitig wahrscheinlichste Erklärung ist für mich noch immer, dass der Hub wirklich kurz die WLAN-Verbindung neu aufbaut.
-
Also bei mir kommt das meisstens nur dann vor wenn ich den Hub abschalte, hab es aber auch schon so beobachtet. Da er bei mir nur an ist wenn ich ihn brauche ist das nicht so oft.
@Pman: Hab jetzt mal deine geänderte Version der Harmony.js getestet. Discover läuft durch und die Verbindung wird auch wieder hergestellt. Leider Tauchen folgende Fehler auf:
ioBroker 2015-11-25 15:43:01 info host.ioBroker Restart adapter system.adapter.harmony.0 because enabled ioBroker 2015-11-25 15:43:01 error host.ioBroker instance system.adapter.harmony.0 terminated with code 6 (uncaught exception) harmony.0 2015-11-25 15:43:01 error Error: read ECONNRESET at exports._errnoException (util.js:874:11) at TCP.onread (net.js:544:26) harmony.0 2015-11-25 15:43:01 error uncaught exception: read ECONNRESET
Nachdem was ich dazu bisher herausgefunden hab wird einer der TCP Streams nicht beendet, wenn der Hub verschwindet. Der Stream bleibt bestehen bis ein neuer Aufgebaut wird, dann wird er hart beendet und es kommt zum Fehler. Die Lösung ist es diesen Fehler mit einem Error Handler ab zu fangen.
Nur damit man das machen kann muss man auch wissen wo
-
Hab jetzt mal aktuell ins Log geschaut und dachte mich laust der Affe…
! ````
cubietruck 2015-11-25 17:08:31 error host.cubietruck instance system.adapter.harmony.0 terminated with code 6 (uncaught exception)
harmony.0 2015-11-25 17:08:31 error Error: bind EADDRINUSE at exports._errnoException (util.js:746:11) at dgram.js:224:28 at dns.js:85:18 at process._tickCallback (node.js:355:11)
harmony.0 2015-11-25 17:08:31 error uncaught exception: bind EADDRINUSEhost-cubietruck 2015-11-25 17:06:06 error instance system.adapter.harmony.0 terminated with code 6 (uncaught exception)
Error: 2015-11-25 17:06:05 error at process._tickCallback (node.js:355:11)
Error: 2015-11-25 17:06:05 error at dns.js:85:18
Error: 2015-11-25 17:06:05 error at dgram.js:224:28
Error: 2015-11-25 17:06:05 error at exports._errnoException (util.js:746:11)
Error: 2015-11-25 17:06:05 error bind EADDRINUSE
uncaught 2015-11-25 17:06:05 error exception: bind EADDRINUSE! host-cubietruck 2015-11-25 16:55:16 error instance system.adapter.harmony.0 terminated with code 6 (uncaught exception)
Error: 2015-11-25 16:55:16 error at process._tickCallback (node.js:355:11)
Error: 2015-11-25 16:55:16 error at dns.js:85:18
Error: 2015-11-25 16:55:16 error at dgram.js:224:28
Error: 2015-11-25 16:55:16 error at exports._errnoException (util.js:746:11)
Error: 2015-11-25 16:55:16 error bind EADDRINUSE
uncaught 2015-11-25 16:55:16 error exception: bind EADDRINUSEhost-cubietruck 2015-11-25 16:53:22 error instance system.adapter.harmony.0 terminated with code 6 (uncaught exception)
Error: 2015-11-25 16:53:21 error at process._tickCallback (node.js:355:11)
Error: 2015-11-25 16:53:21 error at dns.js:85:18
Error: 2015-11-25 16:53:21 error at dgram.js:224:28
Error: 2015-11-25 16:53:21 error at exports._errnoException (util.js:746:11)
Error: 2015-11-25 16:53:21 error bind EADDRINUSE
uncaught 2015-11-25 16:53:21 error exception: bind EADDRINUSE! host-cubietruck 2015-11-25 16:49:18 error instance system.adapter.harmony.0 terminated with code 6 (uncaught exception)
Error: 2015-11-25 16:49:17 error at process._tickCallback (node.js:355:11)
Error: 2015-11-25 16:49:17 error at dns.js:85:18
Error: 2015-11-25 16:49:17 error at dgram.js:224:28
Error: 2015-11-25 16:49:17 error at exports._errnoException (util.js:746:11)
Error: 2015-11-25 16:49:17 error bind EADDRINUSE
uncaught 2015-11-25 16:49:17 error exception: bind EADDRINUSEhost-cubietruck 2015-11-25 16:43:13 error instance system.adapter.harmony.0 terminated with code 6 (uncaught exception)
Error: 2015-11-25 16:43:13 error at process._tickCallback (node.js:355:11)
Error: 2015-11-25 16:43:13 error at dns.js:85:18
Error: 2015-11-25 16:43:13 error at dgram.js:224:28
Error: 2015-11-25 16:43:13 error at exports._errnoException (util.js:746:11)
Error: 2015-11-25 16:43:13 error bind EADDRINUSE
uncaught 2015-11-25 16:43:13 error exception: bind EADDRINUSEhost-cubietruck 2015-11-25 16:37:24 error instance system.adapter.harmony.0 terminated with code 6 (uncaught exception)
Error: 2015-11-25 16:37:24 error at process._tickCallback (node.js:355:11)
Error: 2015-11-25 16:37:24 error at dns.js:85:18
Error: 2015-11-25 16:37:24 error at dgram.js:224:28
Error: 2015-11-25 16:37:24 error at exports._errnoException (util.js:746:11)
Error: 2015-11-25 16:37:24 error bind EADDRINUSE
uncaught 2015-11-25 16:37:24 error exception: bind EADDRINUSE! host-cubietruck 2015-11-25 16:35:03 error instance system.adapter.harmony.0 terminated with code 6 (uncaught exception)
Error: 2015-11-25 16:35:02 error at process._tickCallback (node.js:355:11)
Error: 2015-11-25 16:35:02 error at dns.js:85:18
Error: 2015-11-25 16:35:02 error at dgram.js:224:28
Error: 2015-11-25 16:35:02 error at exports._errnoException (util.js:746:11)
Error: 2015-11-25 16:35:02 error bind EADDRINUSE
uncaught 2015-11-25 16:35:02 error exception: bind EADDRINUSE! host-cubietruck 2015-11-25 16:34:08 error instance system.adapter.harmony.0 terminated with code 6 (uncaught exception)
Error: 2015-11-25 16:34:08 error at process._tickCallback (node.js:355:11)
Error: 2015-11-25 16:34:08 error at dns.js:85:18
Error: 2015-11-25 16:34:08 error at dgram.js:224:28
Error: 2015-11-25 16:34:08 error at exports._errnoException (util.js:746:11)
Error: 2015-11-25 16:34:08 error bind EADDRINUSE
uncaught 2015-11-25 16:34:08 error exception: bind EADDRINUSE! host-cubietruck 2015-11-25 16:33:19 error instance system.adapter.harmony.0 terminated with code 6 (uncaught exception)
Error: 2015-11-25 16:33:19 error at process._tickCallback (node.js:355:11)
Error: 2015-11-25 16:33:19 error at dns.js:85:18
Error: 2015-11-25 16:33:19 error at dgram.js:224:28
Error: 2015-11-25 16:33:19 error at exports._errnoException (util.js:746:11)
Error: 2015-11-25 16:33:19 error bind EADDRINUSE
uncaught 2015-11-25 16:33:19 error exception: bind EADDRINUSE! host-cubietruck 2015-11-25 16:31:55 error instance system.adapter.harmony.0 terminated with code 6 (uncaught exception)
Error: 2015-11-25 16:31:55 error at process._tickCallback (node.js:355:11)
Error: 2015-11-25 16:31:55 error at dns.js:85:18
Error: 2015-11-25 16:31:55 error at dgram.js:224:28
Error: 2015-11-25 16:31:55 error at exports._errnoException (util.js:746:11)
Error: 2015-11-25 16:31:55 error bind EADDRINUSE
uncaught 2015-11-25 16:31:55 error exception: bind EADDRINUSE! host-cubietruck 2015-11-25 16:31:03 error instance system.adapter.harmony.0 terminated with code 6 (uncaught exception)
Error: 2015-11-25 16:31:03 error at process._tickCallback (node.js:355:11)
Error: 2015-11-25 16:31:03 error at dns.js:85:18
Error: 2015-11-25 16:31:03 error at dgram.js:224:28
Error: 2015-11-25 16:31:03 error at exports._errnoException (util.js:746:11)
Error: 2015-11-25 16:31:03 error bind EADDRINUSE
uncaught 2015-11-25 16:31:03 error exception: bind EADDRINUSE! host-cubietruck 2015-11-25 16:29:37 error instance system.adapter.harmony.0 terminated with code 6 (uncaught exception)
Error: 2015-11-25 16:29:37 error at process._tickCallback (node.js:355:11)
Error: 2015-11-25 16:29:37 error at dns.js:85:18
Error: 2015-11-25 16:29:37 error at dgram.js:224:28
Error: 2015-11-25 16:29:37 error at exports._errnoException (util.js:746:11)
Error: 2015-11-25 16:29:37 error bind EADDRINUSE
uncaught 2015-11-25 16:29:37 error exception: bind EADDRINUSE! host-cubietruck 2015-11-25 16:28:30 error instance system.adapter.harmony.0 terminated with code 6 (uncaught exception)
Error: 2015-11-25 16:28:30 error at process._tickCallback (node.js:355:11)
Error: 2015-11-25 16:28:30 error at dns.js:85:18
Error: 2015-11-25 16:28:30 error at dgram.js:224:28
Error: 2015-11-25 16:28:30 error at exports._errnoException (util.js:746:11)
Error: 2015-11-25 16:28:30 error bind EADDRINUSE
uncaught 2015-11-25 16:28:30 error exception: bind EADDRINUSE! host-cubietruck 2015-11-25 16:27:40 error instance system.adapter.harmony.0 terminated with code 6 (uncaught exception)
Error: 2015-11-25 16:27:39 error at process._tickCallback (node.js:355:11)
Error: 2015-11-25 16:27:39 error at dns.js:85:18
Error: 2015-11-25 16:27:39 error at dgram.js:224:28
Error: 2015-11-25 16:27:39 error at exports._errnoException (util.js:746:11)
Error: 2015-11-25 16:27:39 error bind EADDRINUSE
uncaught 2015-11-25 16:27:39 error exception: bind EADDRINUSEhost-cubietruck 2015-11-25 16:26:40 error instance system.adapter.harmony.0 terminated with code 6 (uncaught exception)
Error: 2015-11-25 16:26:40 error at process._tickCallback (node.js:355:11)
Error: 2015-11-25 16:26:40 error at dns.js:85:18
Error: 2015-11-25 16:26:40 error at dgram.js:224:28
Error: 2015-11-25 16:26:40 error at exports._errnoException (util.js:746:11)
Error: 2015-11-25 16:26:40 error bind EADDRINUSE
uncaught 2015-11-25 16:26:40 error exception: bind EADDRINUSE! host-cubietruck 2015-11-25 16:25:41 error instance system.adapter.harmony.0 terminated with code 6 (uncaught exception)
Error: 2015-11-25 16:25:41 error at process._tickCallback (node.js:355:11)
Error: 2015-11-25 16:25:41 error at dns.js:85:18
Error: 2015-11-25 16:25:41 error at dgram.js:224:28
Error: 2015-11-25 16:25:41 error at exports._errnoException (util.js:746:11)
Error: 2015-11-25 16:25:41 error bind EADDRINUSE
uncaught 2015-11-25 16:25:41 error exception: bind EADDRINUSEhost-cubietruck 2015-11-25 16:24:45 error instance system.adapter.harmony.0 terminated with code 6 (uncaught exception)
Error: 2015-11-25 16:24:45 error at process._tickCallback (node.js:355:11)
Error: 2015-11-25 16:24:45 error at dns.js:85:18
Error: 2015-11-25 16:24:45 error at dgram.js:224:28
Error: 2015-11-25 16:24:45 error at exports._errnoException (util.js:746:11)
Error: 2015-11-25 16:24:45 error bind EADDRINUSE
uncaught 2015-11-25 16:24:45 error exception: bind EADDRINUSE! host-cubietruck 2015-11-25 16:23:56 error instance system.adapter.harmony.0 terminated with code 6 (uncaught exception)
Error: 2015-11-25 16:23:55 error at process._tickCallback (node.js:355:11)
Error: 2015-11-25 16:23:55 error at dns.js:85:18
Error: 2015-11-25 16:23:55 error at dgram.js:224:28
Error: 2015-11-25 16:23:55 error at exports._errnoException (util.js:746:11)
Error: 2015-11-25 16:23:55 error bind EADDRINUSE
uncaught 2015-11-25 16:23:55 error exception: bind EADDRINUSE! host-cubietruck 2015-11-25 16:21:56 error instance system.adapter.harmony.0 terminated with code 6 (uncaught exception)
Error: 2015-11-25 16:21:56 error at process._tickCallback (node.js:355:11)
Error: 2015-11-25 16:21:56 error at dns.js:85:18
Error: 2015-11-25 16:21:56 error at dgram.js:224:28
Error: 2015-11-25 16:21:56 error at exports._errnoException (util.js:746:11)
Error: 2015-11-25 16:21:56 error bind EADDRINUSE
uncaught 2015-11-25 16:21:56 error exception: bind EADDRINUSE! host-cubietruck 2015-11-25 16:20:47 error instance system.adapter.harmony.0 terminated with code 6 (uncaught exception)
Error: 2015-11-25 16:20:47 error at process._tickCallback (node.js:355:11)
Error: 2015-11-25 16:20:47 error at dns.js:85:18
Error: 2015-11-25 16:20:47 error at dgram.js:224:28
Error: 2015-11-25 16:20:47 error at exports._errnoException (util.js:746:11)
Error: 2015-11-25 16:20:47 error bind EADDRINUSE
uncaught 2015-11-25 16:20:47 error exception: bind EADDRINUSE! host-cubietruck 2015-11-25 16:19:58 error instance system.adapter.harmony.0 terminated with code 6 (uncaught exception)
Error: 2015-11-25 16:19:58 error at process._tickCallback (node.js:355:11)
Error: 2015-11-25 16:19:58 error at dns.js:85:18
Error: 2015-11-25 16:19:58 error at dgram.js:224:28
Error: 2015-11-25 16:19:58 error at exports._errnoException (util.js:746:11)
Error: 2015-11-25 16:19:58 error bind EADDRINUSE
uncaught 2015-11-25 16:19:58 error exception: bind EADDRINUSE! host-cubietruck 2015-11-25 16:18:54 error instance system.adapter.harmony.0 terminated with code 6 (uncaught exception)
Error: 2015-11-25 16:18:54 error at process._tickCallback (node.js:355:11)
Error: 2015-11-25 16:18:54 error at dns.js:85:18
Error: 2015-11-25 16:18:54 error at dgram.js:224:28
Error: 2015-11-25 16:18:54 error at exports._errnoException (util.js:746:11)
Error: 2015-11-25 16:18:54 error bind EADDRINUSE
uncaught 2015-11-25 16:18:54 error exception: bind EADDRINUSE[859_harmony3.png](/assets/uploads/files/859_harmony3.png)
-
Das sieht nicht gut aus. Welche version vom Adapter ist das? Die hier aus dem Thread oder die von GitHub?
Bei mir sind die Verbindungsabbrüche auch recht häufig im Log. Welche Hub Version hast du?
Ich hab die 4.8.25 seit Heute und seit dem ist es deutlich schlimmer geworden.
-
Adapter ist der 0.5.4. Im Moment noch die unveränderte Version (also GitHub).
Die Hub Version ist 4.7.84
-
Mit der geänderten Harmony.js ist der Fehler behoben. Bei mir tritt dafür ein anderer auf.
Die Verbindungsabbrüche kommen vom Harmony Hub selber, da kann man am Adapter selbst nix ändern.
Ich hab mal danach im Internet gesucht und dort wird vor geschlagen ein Werksreset zu machen. Das Probier ich jetzt mal aus, mal sehen obs das bringt.
-
@Jey Cee:Ich hab mal danach im Internet gesucht und dort wird vor geschlagen ein Werksreset zu machen. Das Probier ich jetzt mal aus, mal sehen obs das bringt. `
Da bin ich mal gespannt. Kann das heute jedenfalls nicht machen. Sonst ist der WAF im Keller und der Hausfrieden gleich mit…