FHEM Forum

FHEM => Sonstiges => Thema gestartet von: olwaldi am 18 Februar 2026, 08:33:40

Titel: ReadyFn - DevIo - Erkennung Verbindungsunterbrechung
Beitrag von: olwaldi am 18 Februar 2026, 08:33:40
Mir ist unklar, woran fhem erkennen kann, wenn eine Verbindung aus irgendeinem Grund unterbrochen wird.

Im Modul DENON_AVR gibts die Funktion DENON_AVR_ConnectionCheck, die regelmäßig eine Botschaft an das Gerät schickt und später guckt, ob eine Antwort eingegangen ist. Und damit kann DENON_AVR gut erkennen, wenn was schiefgelaufen ist.

Im Prinzip macht die ReadyFn-Funktionalität ja genau dasselbe, schickt aber aktiv keine Nachricht an's Gerät. Erst wenn DevIo_SimpleRead aufgerufen wird und keine Daten erhält, wird der Timer für ReadyFn gestartet. DevIo_SimpleRead wird aber erst dann von DENON_AVR_Read aufgerufen, wenn fhem Daten "sieht". Das passiert aber doch bei einer unterbrochene Verbindung gar nicht mehr.

Grüßle, Michael
Titel: Aw: ReadyFn - DevIo - Erkennung Verbindungsunterbrechung
Beitrag von: rudolfkoenig am 18 Februar 2026, 09:49:24
ZitatMir ist unklar, woran fhem erkennen kann, wenn eine Verbindung aus irgendeinem Grund unterbrochen wird.

Haengt von Modul ab.

Bei Netzwerk (TCP/IP): falls auf der anderen Seite das Programm beendet wird, dann schickt das Betriebsystem der Gegenseite fuer diese Verbindung eine Close-Nachricht, was wiederum als Read ohne Laenge auf der FHEM-Seite ankommt.
Falls das OS kein Close schickt (z.Bsp. weil der Stecker gezogen wurde), dann wird das Problem von FHEM nach ca 2 Stunden erkannt, weil das OS unter FHEM nach dieser Zeit per TCP Ping das Problem mitkriegt.

Natuerlich kann ein Modul zusaetzlich ping/keepalive implementieren, um die Zeitspanne zu verkuerzen, MQTT macht das.

ReadyFn wird vom FHEM Framework aufgerufen, um zu pruefen, ob die Gegenseite wieder da ist.
Zusaetzlich ist diese Funktion unter Windows bei seriellen Verbindungen notwendig, da select@Windows nur Netzwerkverbindungen behandeln kann.
Solche Verbindungen werden unter Windows gepollt.
Titel: Aw: ReadyFn - DevIo - Erkennung Verbindungsunterbrechung
Beitrag von: Sailor am 18 Februar 2026, 09:57:12
Hallo Michael

Zitat von: olwaldi am 18 Februar 2026, 08:33:40Mir ist unklar, woran fhem erkennen kann, wenn eine Verbindung aus irgendeinem Grund unterbrochen wird.

Mein 73_DoorBird.pm - Modul stützt sich auf regelmäßige StillAlive UDP - Messages vom Geräte, welche ich abhöre um den aktiven Status herauszufinden.

Gibt dein Gerät etwas Ähnliches her?

Gruß
    Sailor
Titel: Aw: ReadyFn - DevIo - Erkennung Verbindungsunterbrechung
Beitrag von: olwaldi am 18 Februar 2026, 11:01:11
Danke für die Erläuterungen. Dann hat wohl der originale Modul-Entwickler mit seinem DENON_AVR_ConnectionCheck eine passende Lösung gefunden. Schließlich sollte es damals auch für RS232 funktionieren, und da kann man (typischerweise nur RX/TX/Masse verbunden) nur aktiv checken.

Ich habe - um nicht zwei verwandte Mechanismen in DENON_AVR parallel zu nutzen - die ReadyFn-Funktionalität dort erstmal ausgebaut.

Alternativ könnte ich aber auch den DENON_AVR_ConnectionCheck Timer automatisch stoppen, sobald ReadyFn aktiv wird - macht ja keinen Sinn, wenn 2 verschiedene Timer alle 60s die Verbindung checken.


Grüßle, Michael