Mein FHEM "hängt" sich bei instabilem Internet auf

Begonnen von hasselh, 15 März 2026, 13:25:24

Vorheriges Thema - Nächstes Thema

hasselh

Hallo @rudolfkoenig,

ich monitore die Antwortzeit meiner FHEM Instanz über den Telnet Port. Diese liegt normalerweis unter 5 Millisekunden. Ein Watchdog startet die Instanz dann automatisch neu, wenn die Instanz für 60 Sekunden nicht antwortet. Und ich beobachte schon seit Jahren, dass diese Neustarts immer genau dann passieren, wenn auch mein Internet Aussetzer hat. Also wollte ich dem mal auf den Grund gehen...

Die Kommunikation ins Internet ist bei mir in FHEM wie folgt definiert:
attr global proxy 192.169.0.100:8118
attr global proxyExclude 127.0.0.1|192.168.*|192.169.*
attr global blockingCallMax 128

Den ausgehenden Port testweise zu blockieren hat bei mir nicht geholfen das Verhalten zu reproduzieren. Aber die ausgehende Kommunikation testweise gaanz langsam zu machen schon. Dazu führe ich den folgenden Code auf dem Rechner aus, auf dem auch FHEM läuft:
tc qdisc del dev eth0 root 2>/dev/null
tc qdisc add dev eth0 root handle 1: htb default 99
tc class add dev eth0 parent 1: classid 1:1 htb rate 20bps ceil 20bps burst 20 cburst 20
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 \
  match ip dst 192.169.0.100/32 \
  match ip dport 8118 0xffff \
  flowid 1:1

Was jetzt passiert, ist, dass nach einiger Zeit - speziell, wenn mein TelegramBot pollt oder wenn ich eine Nachricht über Telegram verschicke - quasi jegliche (auch lokale !) Kommunikation von FHEM anfängt "einzufrieren". Das betrifft bei mir telnet, mqtt, FHEMWEB und noch weitere Module. Da es zumindest in einem meiner Tests auch vorkam, dass FHEM auch mit deaktivierten TelegramBot einfriert, scheint es m.E. eher ein allgemeines Problem zu sein und nicht ausschließlich an dem TelegramBot zu liegen.

Hierzu ein paar Fragen:
- ist die Anzahl der parallel laufenden NonBlockingGet Aufrufe in FHEM irgendwie limitiert ?
- gibt es irgendeine Konfiguration, mit der ich das Verhalten von FHEM hierzu beeinflussen kann ?
- kann ich irgendwie die Anzahl der aktuell gleichzeitig laufenden "Kommunikations Threads" in FHEM herausfinden ?

Danke im Voraus, Hayo

Guybrush

ich würde mich weniger darum bemühen die symptome zu lindern und fhem ständig neu starten zu lassen. Die Ursache zu finden ist das einzig richtige. Schau dir mal deine DNS Settings an. Wenn du Abfragen auf Domains machst, helfen nonblocking Requests nicht, wenn die vorher erforderliche dns abfrage einen timeout generiert.