NEWS
Zigbee Adapter sporadisch gelb
-
@zautrix sagte in Zigbee Adapter sporadisch gelb:
Also, das ganze geht so:
Zwei Zigbee Lampen bekommen gleichzeitig Strom.
Sie versuchen den Stick anzufunken um sich anzumelden.
Es kann sein, dass das für beide klappt.
Es kann auch sein, dass das nicht klappt. D.h. ein Lampe unterhält sich gerade mit dem Stick und die andere "funkt" dazwischen. Dann meldet der Stick einen Error in der Kommunikation mit der ersten oder zweiten Lampe.
Ist erst einmal nicht schlimm. Ein Error in Funk-Kommunikation kann mal passieren. Vor allem wenn zu viele Geräte gleichzeitig funken.
Dieser gemeldete Error in der Kommunikation wird aber vom Zigbee Adapter auf "grausame Art" behandelt.
Es wird nämlich dieser Fehler im Adapter gar nicht behandelt, sondern eine Exception geworfen, die vom System aufgefangen wird und den Adapter beendet und neu startet:
In deinem Log ist das zu sehen an
"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()"
Das ist zwar jetzt möglicherweise speziell in deinem Log ein Folgefehler von dem ursprünglichen Fehler, aber genau diese "unhandled promise rejection" bei Kommunikationsfehlern bewirkt "das Abschießen" und Neustarten des zigbee Adapters.
Aber der Adapter war ja gerade bei der Kommunikation mit 2 neu eingeschalteten Lampen. Und diese Kommunikation wird nicht immer sauber beendet.
Es kommt also ab und zu einmal vor, dass dann intern der Stick abstürzt. Da hilft dann nur ein "reset" des Sticks durch stromlos machen.Es ist lange her das ich einen grösseren Unsinn gelesen habe:
Erst einmal ein wenig Statistik zu dem was @zautrix zu den 2 Lampen geschrieben hat. Ich habe in meinem Zigbee Netz eine Lampe mit 6 identischen Zigbee-Leuchten. Und diese schalte ich auch von Zeit zu Zeit mal stromlos. Wenn ich den Strom wieder einschalte melden sich 6 Leuchten Gleichzeitig beim Zigbee Adapter an. Ich hatte bisher keinen einzigen Absturz dadurch.
Das deckt sich auch mit der Methode mit der Nachrichten im Zigbee behandelt werden. Auf der untersten Ebene werden diese nach den betroffenen Geräten getrennt worauf schon im Zigbee-Herdsman mit MultiThreading die Kommunikation mit den einzelnen Geräten vor nimmt. Das Zigbee Protokoll gibt dieses im Übrigen auch vor, da auf Grund des Aufbaus des Netzes der Koordinator nicht sicher stellen kann das er während der Kommunikation mit Gerät A nicht auch Nachrichten von Gerät B bekommt (und diese im Fall von Batterie betriebenen Geräten auch sofort behandeln muss, da diese die Nachricht nicht "mal eben" wiederholen können)
Das also ein Fehler bei der Funk Kommunikation den Adapter abstürzen lässt ist so nicht korrekt. Zwar finden sich im Log immer noch "error" Meldungen mit Stack-Trace die auf unvollständige Kommunikation hin deuten, allerdings ohne das deswegen der Adapter abstürzt.
Schwieriger ist es wenn ein Gerät selber "malformed", also syntaktisch inkorrekte Meldungen sendet. Dann kann es vorkommen das der für das Gerät geschriebene Converter diese Nachricht unsauber verarbeitet und den dabei auftretenden Fehler nicht behandelt. In diesem Fall sind die Fehler aber eindeutig einem bestimmten Gerät zuzuordnen und werden darauf basierend auch behoben.
Der Zigbee Adapter selber nutzt die asynchrone Kommunikation intensiv, und versucht bei allen Aufrufen der Zigbee Bibliotheken die geworfenen Fehler zu fangen. Alleine die Tatsache das eine Log-Meldung vorhanden ist zeigt das dieses funktioniert - sie wird nämlich vom Zigbee Adapter generiert.
Was der Adapter nicht abfangen kann ist wenn in der Kette der aufgerufenen Funktionen an einer Stelle ein Bruch auftritt der nicht entsprechend behandelt wird. Es sind genau diese die zu den schwer zu lokalisierenden "promise rejection" Fehlern führen.
Ich denke bevor Du Dich so weit aus dem Fenster lehnst solltest Du statt dessen daran mit arbeiten die (hoffentlich wirklich) von Dir gefundenen Stellen an denen Fehler nicht behandelt werden im Code zu eliminieren. Mitarbeit bei der Adapter Entwicklung ist immer gerne gesehen.
A.
Nachtrag: Es gibt aktuell einen Bereich bei dem immer noch promise rejections auftreten die nicht gefangen wurden. Das ist wenn der Adapter beendet wurde und in der Folge die noch laufenden Threads nacheinander auf ggf. ungültige Datenstrukturen stossen. In diesem Fall ist aber immer vorher ein "adapter stop" im Log zu finden und die Fehlermeldungen die auch gerne im Forum gepostet werden sind zumeist reine Folgefehler eines viel früher auftretenden und auch sauber behandelten Fehlers - in 95% der Fälle beim Start des Adapters.
-
@arteck said in Zigbee Adapter sporadisch gelb:
finde ich schon FRECH.. ohne EINE CODE Zeile geschrieben zu haben
Ich habe schon ziemlich viele Zeilen Code geschrieben.
Ansonsten stimmt vieles von dem einfach nicht, was Du schreibst.
Es werden eine Menge Fehlermeldungen eben ignoriert, was zum Neustart des Adapters führen kann.Und ich schreibe keine Vermutungen. Ich schreibe über Fakten.
-
@asgothian said in Zigbee Adapter sporadisch gelb:
Es ist lange her das ich einen grösseren Unsinn gelesen habe:
Damit, liebe Mitlesende und liebe Mitleidende, hat sich für mich jede weitere Diskussion mit diesen "Experten" hier erledigt.
Ich würde ja gerne mithelfen den Zigbee Adapter zu verbessern. Nur leider halte ich das bei diesem Kommentar hier für aussichtslos.Was sind also die Fakten?
Es gibt in diesem Forum jede Menge Meldungen, dass der CC2531 irgendwann hängenbleibt und abstürzt. Und nur durch "Stromlos-Reset" wieder zum Arbeiten überredet werden kann.
Diese ganzen Fehlermeldungen wurden bisher von den Entwicklern ignoriert.
Ich schreibe jetzt hier, woran es liegt.
Was ist die Antwort:Es ist lange her das ich einen grösseren Unsinn gelesen habe:
Nun gut. Ich rate jedem, der den CC2531 benutzt, von dem Zigbee Adapter ab.
Es wird sich nix ändern.
Ich habe in den letzten 22 Jahren vielen grottenschlechten Open Source Code gesehen. Der Zigbee Adapter ist sicherlich vorne mit dabei.Dabei muss ich natürlich erwähnen: ioBroker und bluefox&consorten halte ich für wirklich herausragend gute Open Source Entwickler. Deswegen nutze ich auch ioBroker.
Aber dieser Zigbee Adapter hier ... aua! -
-
@zautrix sagte in Zigbee Adapter sporadisch gelb:
Damit, liebe Mitlesende und liebe Mitleidende, hat sich für mich jede weitere Diskussion mit diesen "Experten" hier erledigt.
Ich würde ja gerne mithelfen den Zigbee Adapter zu verbessern. Nur leider halte ich das bei diesem Kommentar hier für aussichtslos.Ich denke das ist auch am besten so wenn die Ursache und die Wirkung mit so wenig Verständnis durcheinander gebracht wird. Im übrigen - wenn du wirklich daran gedacht hast mit zu helfen frage ich mich wo deine PR oder Verbesserungsvorschläge auf GitHub sind.
@zautrix sagte in Zigbee Adapter sporadisch gelb:
Was sind also die Fakten?
Es gibt in diesem Forum jede Menge Meldungen, dass der CC2531 irgendwann hängenbleibt und abstürzt. Und nur durch "Stromlos-Reset" wieder zum Arbeiten überredet werden kann.
Diese ganzen Fehlermeldungen wurden bisher von den Entwicklern ignoriert.An dieser Stelle irrst du gewaltig. Die Fehler wurden im Detail untersucht und es wurde festgestellt das die meisten Probleme aus dem Zusammenspiel zwischen dem zigbee-herdsman und der Firmware des cc2531 stammen.
Beides sind im Übrigen keine Entwicklungen der zigbee Adapter Entwickler.
Daher stimme ich dieser einen aussage zu:
@zautrix sagte in Zigbee Adapter sporadisch gelb:
Nun gut. Ich rate jedem, der den CC2531 benutzt, von dem Zigbee Adapter ab.
Das tun wir auch.
Nebenbei - viel Spaß dabei über zigbee2mqtt und mqtt mit dem cc2531 bessere Ergebnisse zu erzielen.A.
-
@zautrix sagte in Zigbee Adapter sporadisch gelb:
Ich schreibe über Fakten.
Du bist gerne eingeladen die Fakten incl. code Zeilen aufzuzeigen. Ich bin echt gespannt an welcher Stelle Du da landest.
A.
P.s. das ist ernst gemeint. Lass deinen Behauptungen Beweise folgen. -
@zautrix sagte in Zigbee Adapter sporadisch gelb:
Ich habe in den letzten 22 Jahren vielen grottenschlechten Open Source Code gesehen. Der Zigbee Adapter ist sicherlich vorne mit dabei.
DANN MACH ES BESSER.. so einfach ist das.. klugscheissen kann jeder .. Fork den Adapter und gib gas..
-
So, liebe Mitleser und (Ex-Mit)Leidende ( ich habe ja wegen des gefixten "Unsinns" diese Probleme nicht mehr ), genug über unfähige Programmierer aufgeregt. Ab jetzt will ich wieder lieb sein. Natürlich werde ich demnächst ( ich hoffe in den nächsten 30 Tagen) eine Zusammenfassung meiner Änderungen hier in einem extra Thread posten. Da kann dann jeder selbst sehen, ob er das bei sich selbst einbauen kann und will. Da die Programmierer das ja für " Unsinn" halten ist von dort wohl keine Hilfe bei unserem Problem zu erwarten. Aber man darf sich auch nicht zu viel erwarten. Ich habe einen Punkt gefixt. Es kann aber durchaus noch viel mehr Möglichkeiten im Adapter geben den Stick "aufs Kreuz zu legen". Und ein genereller Fix ist wegen des in vorherigen Beiträgen angesprochenen Designs nicht so leicht möglich. Ich habe jedenfalls mit meinem "Unsinn" meine regelmäßigen "unregelmäßigen Abstürze des Sticks in 3 bis 6 Tagen" beheben können. Und was die Verantwortlichen hier für einen "Mist" schreiben bezüglich "dem bösen Stick geht der Speicher aus" ist an Dümmlichkeit und Unwissenheit und Unfähigkeit nicht mehr zu überbieten. Denn bevor im Adapter das grundlegende Zigbee System geändert wurde lief dieser "böse Stick" bei mir (und bei anderen, es gibt viele Belege dafür in Beiträgen in diesem Forum) Monate ohne Probleme durch. Und da gingen auch noch die Gruppen ohne Probleme ... aber das ist ein anderes Thema.
Ich muss aber erst einmal die wesentlichen Änderungen für diesen Bugfix aus meinen zahlreichen Änderungen an diesem Adapter extrahieren. Ich habe nämlich um überhaupt fähig zu sein länger ( meine Untersuchungen um das Problem zu lokalisieren und zu fixen haben mehrere Nächte und sicher über 21 Stunden gebraucht) an diesem Adapter arbeiten zu können äußerst zahlreiche Änderungen an dem Code vornehmen müssen um meinen Brechreiz beim Schauen auf den wirklich grausamen originalen Programmcode erfolgreich unterdrücken zu können. Ständig auf die Tastatur kotzen zu müssen hätte die Sache nur verzögert. Ich weiß, das ist eine wirkliche Schwäche von mir bei grauenhaft schlechten Programmierungskünsten anfangen müssen zu würgen. Aber so hat halt jeder seine Fehler...
-
@arteck said in Zigbee Adapter sporadisch gelb:
DANN MACH ES BESSER.. so einfach ist das.. klugscheissen kann jeder .. Fork den Adapter und gib gas..
Gute Idee! Warum bin ich da nicht drauf gekommen?
Aber mal im Ernst. (Du bist hier wenigstens noch einigermaßen korrekt). Ob man den Adapter überhaupt vernünftig fixen kann ist mir noch nicht ganz klar. Ich lasse meine Änderungen schon seit Weihnachten bei mir laufen und es sieht besser aus. Aber bei nichtdeterministischen Fehlern hat das nicht unbedingt etwas zu sagen...
-
@zautrix sagte in Zigbee Adapter sporadisch gelb:
Aber mal im Ernst. (Du bist hier wenigstens noch einigermaßen korrekt). Ob man den Adapter überhaupt vernünftig fixen kann ist mir noch nicht ganz klar. Ich lasse meine Änderungen schon seit Weihnachten bei mir laufen und es sieht besser aus. Aber bei nichtdeterministischen Fehlern hat das nicht unbedingt etwas zu sagen...
Wenn dem so ist, dann
- mach doch einfach einen Pull Request mit deinen Anpassungen am Zigbee Adapter. Dann musst du die Sachen nicht erst irgendwo ausbuddeln, sondern kannst Direkt diese Anpassungen einem grösseren Publikum zukommen lassen.
-
Liebe Leute, liebe Programmierer
ich weiß ja nicht was ihr hier überhaupt treibt.
Als ich angefangen habe mich mit dem Problem zu beschäftigen musste ich erst einmal feststellen, dass noch nicht einmal (waren es Log oder Error ) Meldungen korrekt dargestellt werden. In einer Meldung kamen nur die Namen der Variablen, aber nicht deren Inhalt. Deswegen musste ich daraus schließen: So richtig Ahnung was ihr hier überhaupt macht, habt ihr nicht.... -
@zautrix sagte in Zigbee Adapter sporadisch gelb:
Liebe Leute, liebe Programmierer
ich weiß ja nicht was ihr hier überhaupt treibt.
Als ich angefangen habe mich mit dem Problem zu beschäftigen musste ich erst einmal feststellen, dass noch nicht einmal (waren es Log oder Error ) Meldungen korrekt dargestellt werden. In einer Meldung kamen nur die Namen der Variablen, aber nicht deren Inhalt. Deswegen musste ich daraus schließen: So richtig Ahnung was ihr hier überhaupt macht, habt ihr nicht....Lieber @Zautrix.
Du kannst so lange wie du magst hier Kommentare schreiben. Ich werde mich damit erst dann wieder beschäftigen wenn ich
- einen (oder mehrere) PR auf Github vorfinde wo deine Anpassungen drin sind, oder
- ich hier code Zeilen und die geänderten Dateien finde.
Nur damit wir nicht aneinander vorbei schreiben: Die von denen Du so vollmundig behauptest das sie keine Ahnung haben sind ausschliesslich verantwortlich für den Code der sich im Zigbee Adapter selber (sprich ioBroker.zigbee) befindet. Alles was sich im zigbee-herdsman-converters oder im zigbee-herdsman befindet liegt ausserhalb dessen was wir direkt beeinflussen.
A.
-
@zautrix Diese Community lebt davon, dass man sich gegenseitig hilft, und wer Bock und Ahnung hat kann ja gerne weitere (oder verbesserte) Adapter beisteuern.
Also, wenn die hier "kiene Ahnung haben was sie machen", dann hilf doch mit und schreib einen vernünftigen Adapter.Ich würd den vielleicht sogar installieren, wenn er wirklich besser ist, allerdings ist mein zigbee Adapter "grün" und funktioniert tadellos (inkl. Logging).
-
@amg_666 na das ist schon mal gut... sry dass wir dein Thread gekappert haben
-
@zautrix ick freu mir schon druff... auf ein umfassendes redesign .. @Asgothian das wird super.. hörmal.. wir haben endlich den EXPERTEN den wir jeehhh gesucht haben... da wir ja ehh keine Ahnung haben.. und nichtmal Programmieren können in dem " schwerwiegenden softwarerechnischen Designfehler"
klar ich sehs ein.. @zautrix danke dass du mich ENDLICH aufgeklärt hast.. und stell dir vor es ist keinem Aufgefallen dass ich keine Ahnung habe...
diese Freiheit...ick freu mir schon druff
-
@arteck sagte in Zigbee Adapter sporadisch gelb:
na das ist schon mal gut... sry dass wir dein Thread gekappert haben
Ja, das ist ja das tolle hier, mir wurde geholfen, thread ist vom 15.02. und seitdem läuft es stabil...