Open Wildbill-Z opened 2 months ago
Hi, ich verstehe das Problem, aber es sollte mit Tier 3 doch absolut ausreichend sein. Nach Level 3 gibts doch auch nichts mehr, was gestartet werden kann... wenn alles zu langsam ist, dann bessere Hardware nehmen.. denke, hier liegt eher das Problem, als an der Software... Der Device-Watcher ist Standard Level 2, was ich nicht so wirklich verstehe, denn der macht ja erst Sinn zu pruefen, wenn alle anderen gestartet sind, aber dazu reicht Level 3. Hier stellt man das ein, Expertenmodus an, dann in Instanzen den Adapter aufklappen:
An der Hardware liegt es sicher nicht, läuft unter Proxmox mit 16-Kern-CPU. :-) Ich komme auch klar, indem ich, wie im Thread beschrieben, Javascript, Sourceanalytix und eben den device-watcher vor einem fälligen Neustart eh anhalte und dann manuell erst starte, wenn alle anderen Instanzen wieder laufen. Mir wurde nur geraten, halt mal ein Issue zu erstellen, damit es möglicherweise mal angedacht ist, hier was einzubauen. Es gibt ja nur die 3 Level. Und wenn jetzt ein Geräte-Adapter auch auf Tier 3 startet, würfelt eben das System aus, welche Reihenfolge für die Tier-3-Instanzen gilt. Wie man es einstellt wurde im Thread bereits beschrieben. Aber nicht jeder kennt das, man muss in den Expertenmodus schalten, und möglicherweise reichen die 3 Level doch nicht aus.
Gruss, Jürgen
Moin,
Also die Problematik ist mir bekannt und ich weiß wie nervig das bei einer hohen Anzahl an Geräten sein kann. Das Problem besteht auch nicht nur wenn der iobroker neustartet, sondern auch wenn einzelne Adapter neu starten. Ich hatte zb mal einprogrammiert das Geräte nur on/offline gemeldet werden wenn der dazugehörige Adapter eine gewisse Zeit läuft bzw. überhaupt läuft. Das funktioniert aber leider nicht überall. Zb zigbee2mqtt schaltet erst alle Geräte offline bevor er sich abschaltet. Hatte bis dato keine Ahnung wie ich das abfangen soll, damit man nicht massig Benachrichtigung bekommt. Hatte an einen buffer gedacht der die Nachrichten sammelt und dann zusammenfasst. Wegen System Wechsel ist das dann aber untergegangen. Ich nehme aber gerne Ideen an und würde da nacharbeiten. :)
Ja, Zigbee2MQTT ist da in der Tat so ein Kandidat. Wenn der beendet wird, läuft Telegram bei mir heiß. Mir fällt grad ein, im device-watcher lässt sich ja für jede überwachte Instanz ein separater Timeout eintragen, der dann erst nach der Verzögerung meldet, anstatt direkt, wenn ein Adapter was offline meldet. Eventuell muss ich damit mal spielen. Das wäre ja quasi die Verzögerung, die man manuell einstellen kann und ich oben angesprochen hatte, oder?!
Gruss, Jürgen
EDIT: Greift diese Verzögerung auch beim Neustart von device-watcher oder geht der einmal alles durch und meldet sofort, wenn er neu startet?
Der Device-watcher selber geht beim start nur einmal durch, reagiert aber nicht sonder schreibt nur die Listen. Problem sind die Adapter die nach dem device-watcher starten bzw. davor und die Geräte noch nicht alle erreichbar sind. Wenn die danach Online gehen, meldet er die natürlich als wieder erreichbar. Mit den Zeiten muss man Testen ob die dann auch greifen. Habe ich nie drauf geachtet bei Neustart wenn ich ehrlich bin.
Auf Vorschlag aus diesem Thread möchte ich anregen, den Adapter bei einem Neustart von iobroker verzögert starten zu lassen. Viele Adapter setzten ihre Geräte auf alive=false / abwesend. Wenn diese Adapter noch nicht gestartet sind, device-watcher aber die Arbeit aufnimmt, so meldet er zig Geräte als sofort als offline und dann nach und nach als online. Wenn device-watcher hier pauschal als letztes startet, oder nach einem Neustart erst einmal eine (definierbare?) Zeit warten würde, bis er auswertet, wäre das damit erschlagen. Im Thread ist von TIER-Leveln die Rede, wobei es da wohl nur 3 gibt. Das lässt sich zwar manuell einstellen, aber eine Verzögerung innerhalb des Adapters wäre vermutlich sinnvoller?!
Gruss, Jürgen