stephan68 ich habe seit dem letzten Post hier auch nie wieder Probleme gehabt. Nur als Feedback
Ankündigung
Einklappen
Keine Ankündigung bisher.
Nuki Smartlock Plugin - Support Thread
Einklappen
X
-
psilo Heute morgen ist das Problem gegen 6:36 Uhr wieder aufgetaucht, die Bridge ist nach wie vor direkt an der FritzBox angemeldet. Im Logfile findet sich eigentlich nichts zu diesem Zeitpunkt, die letzte Meldung im Bezug auf das Nuki-Plugin ist von gestern:
Code:2023-11-05 14:59:25 ERROR plugins.nuki HTTPConnectionPool(host='192.168.2.11', port=8080): Max retries exceeded with url: /list?token=SS372022839865 (Caused by NewConnectionError('<urllib3.connection.HTTPConnec tion object at 0x7f88202142b0>: Failed to establish a new connection: [Errno 110] Connection timed out'))
Ich habe jetzt mal den Loglevel für das Nuki-Plugin auf DEBUG gesetzt und lasse das separat loggen. Mal sehen, ob sich da was ergibt. Hast du sonst noch Ideen, was ich machen könnte?
Kommentar
-
psilo: aktuell tritt das Problem wieder vermehrt auf, da ich sowieso ein Nagios laufen habe, lasse ich die Threads-Anzahl jetzt überwachen und starte SHNG ggf. automatisiert neu.
Aber was mir dabei auch noch aufgefallen ist: Laut Dokumentation und WebIF gibt es für schließen und öffnen jeweils einen eigenen Status, den ich gerne nutzen würde um den -doch etwas längeren- Ver-/Entriegelungs-Vorgang zu visualisieren. Aber das Status-Objekt sendet diese Werte nie. Weder wenn das Schloß per App bedient wird, noch per SmartVisu. Ist das nicht implementiert, oder stimmt hier was nicht?
Kommentar
-
stephan68 ich schaus mir mal an, habe jetzt endlich frei... Mich nervt das Thema auch. Warum auch immer habe ich derzeit auch wieder Probleme.. Kann nicht ausschließen, dass die Bridge inzwischen neue Updates hat. Das Plugin ist alt... Erklärt für mich aber die Probleme trotzdem nicht wirklich.
- Likes 1
Kommentar
-
Ich glaube ich habe das Thema gefunden, der von mir aufgerufene Webservice "/lockState" ist während des Schließens/Öffnens nicht verfügbar, da dieser wohl direkt auf das Schloß zugreift. Der "list" Webservice scheint aber zu gehen, da dieser wohl direkt auf die Bridge geht. Ich überlege mal ob man das umbauen kann bzw dann infos fehlen.Evtl hängt das auch mit dem Problem mit den Threads zusammen.
image.png
Den Scheduler hab ich jetzt mal auf den "/list" Webservice umgestellt. Wo ich nicht sicher bin ist, ob ich den schließenden / öffnenden Status auch via CallBack Funktion bekomme: Der Scheduler läuft ja nur alle 300 Sekunden und im WebIf wird direkt aktualisiert. Wenn das Schloß sperrt/öffnet nutze ich aber den CallBack, um DIREKT Rückmeldung zu bekommen. Hier scheint der Zwischenstatus nicht zu kommen. Vielleicht kann ich im Callback-Fall den Status dann via "/list" beziehen. Ich vermute aber, dass der Callback nur im OPEN oder CLOSED State ausgelöst wird.Angehängte DateienZuletzt geändert von psilo; 23.12.2023, 11:35.
Kommentar
-
Der callback gibt mir in der Tat nur locked und unlocked zurück. Ich muss mal schauen, ob ich nach den schalten einfach /list aufrufen kann. Mglw hat meine änderung das Threads problem bereits behoben. Ich pushen in den Develop sobald ich durch meine derzeitige Coronainfektion durch bin. Komm aus dem Bett kaum hoch.
Kommentar
-
@stephan68 Die neue Version ist jetzt im Develop. Bitte mal testen. Der 503er Webservice sollte während des Schließens jetzt nicht mehr gecalled werden. Zudem update ich nach einem Statechange den Status nochmals zusätzlich über den immer verfügbaren "/list" Webservice.
Seit der ersten Änderung hatte ich keine Threadprobleme mehr, kann aber auch Zufall sein.
Update: Gerade noch einen kleinen Fix für die Stati 4: schließend und 7: aufklinkend gepusht, bei mir klappt es.Zuletzt geändert von psilo; 26.12.2023, 15:58.
Kommentar
-
stephan68 Ich habe glaube ich noch was entdeckt. Die self._register_callback() wurde alle 5 Minuten neu aufgerufen. Eigentlich reicht es ja, denn Callback nur einmal zu registrieren. Habe das jetzt mal aus der gescheduleten Funktion rausgenommen und teste lokal. Kann mir schon vorstellen, dass die Bridge nicht mag, wenn mal 1000mal den gleichen Callback registriert.
Klappt wohl weiterhin alles. Ist jetzt im DEVELOP. Lass uns das jetzt mal beobachten. Wenn es immer noch zu viele Threads gibt, muss ich an
self._get_paired_nukis()
self._get_nuki_status_via_list()
nochmal ran.
Die These wäre aber, dass ggf. die erste Funktion noch Probleme macht. Die Frage ist, ob man die braucht.Die geht wohl auch nur auf den "list" Webservice und setzt die paired_nukis bei jedem loop neu (kapiere nicht so 100%, warum man das braucht?). pfischi weißt Du noch warum Du das so gebaut hattest? Für den Fall, dass man zur Laufzeit ein Nuki dazunimmt oder entfernt?
Zumindest könnte man das wohl in den gleichen Aufruf packen und dadurch 1 Call / Iteration entfernen. Aber jetzt erstmal beobachten.
Update: erste nacht bisher ohne thread-probleme
Update 2.1.24: seit der Änderung weiterhin KEINE Threading Probleme!Zuletzt geändert von psilo; 02.01.2024, 09:00.
Kommentar
Kommentar