NEWS
UNSOLVED Zigbee Geräte schalten verzögert
-
Nachtrag: gerade nochmal das Log genauer betrachtet.
Mir scheint, dass er tatsächlich immer diese 10sek hängt wenn er ein Gerät nicht "pingen" kann. Habe immer wieder ziemlich genau 10sek Lücken im Log, davor pingt er einen Plug der gerade neben mir auf dem Tisch liegt. Hatte das vorhin wieder: über's dashboard zwei Plugs geschaltet, nichts passiert, mehrfach die Schalter im Dashboard hin und her... und nach ein paar Sekunden machten beide dann "klick-klack-klick-klack". Das im Log abgepasst - genau da "hing" das Log 10 sek, in denen hatte ich die Schalter im dashboard "hin und her geschubst". Kein Zufall würde ich sagen.
Wenn die "Hänger" also von fehlenden Geräten kommen... kann man den "timeout" von 10sek irgendwie auf 1 oder 2 sek runter setzen?
So, nu aber... Feierabend
-
@fiddle Jein
Der Timeout ist tief im Zigbee-Herdsman-converters vorgegeben.
Es ist denkbar in der Routine die die Geräte pingt das Absetzen und Erwarten der Pings voneinander zu trennen. Allerdings kann das unerwünschte Nebenwirkungen haben.
Ich schau mir das morgen einmal an.
A.
-
@Asgothian said in Zigbee Geräte schalten verzögert:
Ich schau mir das morgen einmal an.
Hat deine Recherche was gebracht? Ich hab das Phänomen auch und mein zigbee Netz ist sehr übersichtlich (nur 7 Devices, davon ein CC2530 als Router).
Problem ist, dass ich mit IKEA Tradfri Fernbedienung Lampen (Sonoff und shelly Switches) steuern will. Mal geht es sofort, mal dauert es ewig bis geschaltet wird. Die sind auch an Alexa gekoppelt und da funktionierts ohne irgendwelche Probleme. Ich denke mal dass es mit Erreichbarkeitsproblemen (ping) zusammenhängen kann. -
@amg_666
Meine Recherche hat erbracht das das Ping zwar verzögert abgesetzt wird, dieses aber zeitlich nicht gekoppelt ist an das Absenden anderer Zigbee Befehle. Eine Entkoppelung ist denkbar, aber ich bin mir nicht Sicher wie sinnvoll das ist, da damit ggf. das Netz mit Meldungen zugeworfen wird.A.
-
@Asgothian Danke für deine Mühe.
Wenn's also nicht wegen der Pings hakt, wie kommen wir der Ursache dann auf die Spur? Wenn ich Amg_666 richtig verstehe hat er ja keine "unregelmäßig abwesenden" Devices wie ich mit meinen per Wandschalter hart vom Strom getrennten Leuchtmitteln (sprich bei ihm sind alle eigentlich immer "an" /erreichbar) und dennoch hat er auch Hänger. -
@fiddle Richtig verstanden
-
Gibt es hier vielleicht schon ein paar neue Erkenntnisse?
Ich werde aktuell auch vom verzögerten Schalten geplagt. Es wird aber auch nichts ins Log geschrieben.
Teilweise sind die Verzögerungen bis zu 30 Sekunden. Irgendwie habe ich die Vermutung, dass dies durch "Alexa" ausgelöst werden. Wenn aber durch Alexa nicht geschaltet wird, dann kann ich auch direkt über iobroker nicht schalten.
Nachdem der "Knoten" gelöst ist, werden dann alle bis dahin getätigten Schaltvorgänge abgearbeitet und es ist für einen kurzen Moment Party im Raum. -
@DirkS Nein. Da ich den Effekt nicht habe kann ich den nicht analysieren.
A.
-
@Asgothian
Vielen Dank für die schnelle Antwort.
Seltsam ist es, dass es nicht immer auftritt. Was auch seltsam ist, dass diesmal nichts im Log steht.
Könnte ich denn noch irgendwie zur Lösung des Problem beitragen? -
Je nach dem wie häufig es auftritt könntest Du den Adapter im Debug laufen lassen, incl. zigbee-herdsman-debug Info, um dann wenn es passiert die vorhandenen Nachrichten aneinander setzen zu können.
Allerdings macht das nur in einem bestimmten Szenario Sinn. Um da genauer schauen zu können benötige ich
- ein Log von einer Schaltsituation die sauber gelaufen ist
- ein Log von einer Verzögerten Schaltsituation.
Wichtig ist dabei das die beiden Situationen soweit wie möglich identisch sein müssen, sprich das die gleichen Leuchtmittel angesprochen werden.
A.
-
@Asgothian
Debug Ausgabe hatte ich wohl irgendwann wieder deaktiviert. Nun ist sie wieder aktiv und auch der zigbee-herdman-debug info. Hoffe ich bekomme da eine Diskrepanz raus. -
[Nachtrag]
Debugausgabe ist nun aktiv und füllt die Log Datei extrem.
Es wird kontinuierlich Ausgabe erzeugt. Eventuell ist einfach zu viel Traffic, so dass irgendwann die Queue voll ist. Im Schnitt landen 100-120 Zeilen/Minute im Log. Ping, Status, Werte, etc. obwohl nichts geschaltet wird.
Kann man hier irgendwas einstellen, dass nicht ständig irgendwelche Updates kommen?
Kann es eventuell damit zu tun haben?
Version 1.16.0 overall slow network response
Welche Version arbeitet hier aktuell im "Kern"?
Habe gerade die aktuelle Version vom GitHub genommen. -
@DirkS Dabei geht es um Effekte im Zigbee2mqtt 1.16 soweit ich das erkennen konnte. Diese setzen wir nicht ein. In wie weit das auf Anpassungen innerhalb des Herdsman zurück fällt konnte ich nicht erkennen.
Ich gehe davon aus das Dein Effekt ein anderer ist. In dem Thread ist von einer generellen "Langsamkeit" die Rede.
A.
-
@Asgothian
Okay. Ich habe da mal eine Vermutung. Ich habe gerade etwas im Log beobachtet:
Es tat sich einige Zeit nichts, dann kam folgender Eintrag und danach folgten wieder einiger Einträge:
Error on send command to 0xYYXXZZFFeeGGHHJJ. Error: Error: Command 0xYYXXZZFFeeGGHHJJ/1 genOnOff.off({}, {"timeout":10000,"di...
Hier scheint eine meiner Steckdose nicht erreichbar gewesen zu sein und alles andere wartete darauf. -
@DirkS wenn was nicht sofort antwortet wird 10 sec gewartet ..
-
@DirkS
Es sollten nur Schaltbefehle an die eine Steckdose warten. Alles andere sollte parallel weiter laufen.Das sollte durch interne Queues so abgebildet sein, und ich bin mir 99% sicher das es so bei mir auch funktioniert.
Was hast du bei deinem Adapter in der Config an Einstellungen ?
A.
-
@Asgothian
Was meinst du konkret mit "Einstellungen"? Habe eigentlich nichts verändert außer den Schlüssel.
Die Log Level Einstellung erzeugt nun ganz schon viel Traffic. vorher hatte ich ein paar KB nun sind es 100MB Log/Tag.
Was mir aufgefallen ist, dass scheinbar Teile des Netzwerk wohl kurzzeitig ständig nicht erreichbar sind. Ich hatte mir hierzu einmal den "Available" State von verschiednen Zigbee Geräten an unterschiedlichen Standorten protokollieren lassen.
Es gibt wohl auch ein Firmware Update für meine cc2538 Lösung. -
OK.. hat Sich erledigt.. früher gab es eine Einstellung mit der das command queuing am Zigbee-Adapter umgestellt werden kann. Die Einstellung gibt es nicht mehr.
Kannst du bitte den Folgenden Test machen:
- ein Skript schreiben, das fuer 20 Sekunden jede Sekunde eine Lampe umschaltet (eine die auch da ist)
- Nach 5 Schaltzyklen soll es zusätzlich eine Lampe schalten die du vorher vom Strom getrennt hast (device nicht erreichbar erzwingen)
Diese 20 Sekunden im Log aufzeichnen und mir bitte zukommen lassen, zusammen mit einer Beschreibung wie sich die Lampe verhält, sowie die ieee Adressen der beiden betroffenen Lampen.
A.
-
@Asgothian
Werde ich die Tage machen, wenn es etwas ruhiger wird.
Es ist aber schon sehr kurrios. Wenn ich SQL Logging einschaltet, sollte doch der letzte Zustand protokolliert sein? Dieser passt manchmal nicht zum aktuellen Zustand der Erreichbarkeit.
Das nächste ist, dass z.B. von meinen geliebten OSRAM Dingern die Erreichbarkeit als nicht vorhanden angezeigt wird, diese sich aber schalten lassen. Ich vermute, dass es dann den umgekehrten Fall auch gibt?
[Nachtrag]
Vermutlich kein Zusammenhang, habe gerade ein Update-Check gestartet und bekomme nun dies hier ins Logzigbee.1 2020-12-17 07:39:13.231 error at Timer.processTimers (timers.js:223:10) zigbee.1 2020-12-17 07:39:13.231 error at listOnTimeout (timers.js:263:5) zigbee.1 2020-12-17 07:39:13.231 error at tryOnTimeout (timers.js:300:5) zigbee.1 2020-12-17 07:39:13.231 error at ontimeout (timers.js:436:11) zigbee.1 2020-12-17 07:39:13.231 error at Timeout.waiter.timer.setTimeout [as _onTimeout] (/opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/dist/utils/waitress.js:46:35) zigbee.1 2020-12-17 07:39:13.231 error (10275) Error: Timeout - 46243 - 1 - null - 25 - 1 after 30000ms zigbee.1 2020-12-17 07:39:13.231 error (10275) unhandled promise rejection: Timeout - 46243 - 1 - null - 25 - 1 after 30000ms Unhandled 2020-12-17 07:39:13.230 error 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().
-
@DirkS sagte in Zigbee Geräte schalten verzögert:
Vermutlich kein Zusammenhang, habe gerade ein Update-Check gestartet und bekomme nun dies hier ins Log
Irgendwie scheint dieser Eintrag unvollständig. Der entscheidende Teil fehlt.
@DirkS sagte in Zigbee Geräte schalten verzögert:
Das nächste ist, dass z.B. von meinen geliebten OSRAM Dingern die Erreichbarkeit als nicht vorhanden angezeigt wird, diese sich aber schalten lassen. Ich vermute, dass es dann den umgekehrten Fall auch gibt?
Soweit ich das überblicke gibt es diesen Fall nur bei batteriebetriebenen Geräten, bei denen die Erkennung der Anwesenheit generell problematisch ist, da sie nicht abgefragt werden können. Eine saubere Erkennung basierend auf der letzten erhaltenen Nachricht ist nicht immer Einfach, da sich das Intervall in dem sich die Geräte melden von Gerät zu Gerät extrem unterscheiden kann.
A.