FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: ftsinuglarity am 14 Oktober 2017, 16:03:41

Titel: FHEM "Offlinemodus" - Ladeverzögerung des Interface wenn Internet Ausfall
Beitrag von: ftsinuglarity am 14 Oktober 2017, 16:03:41
meine Spaßbremse Telekolumbus (mein Inet-Provider) hat des öfteren Ausfälle.. heißt mein Internet ist gern mal unverhofft für ein paar Minuten weg.
Wenn ich fhem dann intern aufrufe, dauert es merklich länger, bis sich die Seiten aufbauen.
Ich nehme an, das noch versucht wird, aus dem Netz was nachzuladen.
Bevor ich alles selber abgrase, meine Frage was ich mir Oflline (also auf den fhem rasp) ablegen kann, damit die Ladezeiten vertretbar sind .. kurz, gibt es sowas wie einen Offline-Mode ?
Hab nicht wirklich viel darüber gefunden.
Titel: Antw:FHEM "Offlinemodus" - Ladeverzögerung des Interface wenn Internet Ausfall
Beitrag von: jutil am 14 Oktober 2017, 16:28:27
Nun ja du könntest über einen Ping relativ schnell deinen On / Offlinemodus erkennen und internetinteraktionen entsprechend steuern bzw aussetzen....
Titel: Antw:FHEM "Offlinemodus" - Ladeverzögerung des Interface wenn Internet Ausfall
Beitrag von: ftsinuglarity am 14 Oktober 2017, 16:35:19
Zitat von: jutil am 14 Oktober 2017, 16:28:27
Nun ja du könntest über einen Ping relativ schnell deinen On / Offlinemodus erkennen und internetinteraktionen entsprechend steuern bzw aussetzen....
Das ist nicht ganz was ich meine.
Ob Internet an oder aus ist, lasse ich per presence + watchdog checken und mache mir aus dem Log ein Plot. Allein um Telekolumbus ein Protokoll vor die Nase halten zu können.

Ich habe zwar Internetaktionen zu laufen, wie zB die Wetterabfrage, nur ist das beim eigentlichen Nachladen des Webintace im Brower nicht relevant. Die Abfragen laufen zeitgesteuert im Hintergrund. Die Werte im Webinterface haben dann nur nicht den aktuellen Wert. Das alles sollte beim Nachladen im Interface keine Rolle spielen.

Ich denke eher an Dinge, die zur Darstelllung der fhem-Seite benötigt werden. Icons zB habe ich mir alle schon direkt auf den Raspberry gelegt. Da wird aber noch mehr nachgeladen.
Titel: Antw:FHEM "Offlinemodus" - Ladeverzögerung des Interface wenn Internet Ausfall
Beitrag von: herrmannj am 14 Oktober 2017, 16:44:14
fhem (core) lädt nichts aus dem Internet nach.

Einzelne Module möglicherweise.

Hast Du das DNS attribut gesetzt ?
Titel: Antw:FHEM "Offlinemodus" - Ladeverzögerung des Interface wenn Internet Ausfall
Beitrag von: ftsinuglarity am 14 Oktober 2017, 16:51:45
Zitat von: herrmannj am 14 Oktober 2017, 16:44:14
fhem (core) lädt nichts aus dem Internet nach.

Einzelne Module möglicherweise.

Hast Du das DNS attribut gesetzt ?

Meinst du das : ?
dnsServer
Enthält die IP Adresse des DNS Servers. Die von bestimmten Modulen (oder eigenen Code) aufgerufene HttpUtils_NonblockingGet wird auch bei der DNS Auflösung nicht mehr blockieren, falls dieses Attribut gesetzt ist, da es in diesem Fall FHEM eigene Routinen aufgerufen werden. Sonst werden die OS-eigenen, blockierenden Routinen inet_aton bzw gethostbyname aufgerufen.

> fhem (core) lädt nichts aus dem Internet nach
Gut zu wissen, also Modulabhängig ..
Titel: Antw:FHEM "Offlinemodus" - Ladeverzögerung des Interface wenn Internet Ausfall
Beitrag von: herrmannj am 14 Oktober 2017, 16:59:23
Exakt. Einzelne Module können trotzdem hängen falls die Namensauflösung nicht an fhem gegeben wird. (aton, gethostbyname, LWP, socket::inet usw). Wenn Du ein modul findest welches betroffen ist, bitte den maintainer ansprechen.
Titel: Antw:FHEM "Offlinemodus" - Ladeverzögerung des Interface wenn Internet Ausfall
Beitrag von: ftsinuglarity am 14 Oktober 2017, 17:05:09
Zitat von: herrmannj am 14 Oktober 2017, 16:59:23
Exakt.

Danke!
dnsServer ist jetzt gesetzt und zur Sicherheit fhem neu gestartet. Bin gespannt ob es einen merkbaren Unterschied gibt.
Sollte der DNS lieber auf den Localhost vom fhem Server als den "richtigen" DNS Server (also meinen Router am vordersten Ende der Kette) gesetzt werden?
Wenn ich dnsServer richtig verstehe, wird lokal umgeleitet, wenn die Zieladresse nicht erreichbar ist.


Zitat von: herrmannj am 14 Oktober 2017, 16:59:23
Einzelne Module können trotzdem hängen falls die Namensauflösung nicht an fhem gegeben wird. (aton, gethostbyname, LWP, socket::inet usw). Wenn Du ein modul findest welches betroffen ist, bitte den maintainer ansprechen.
Jup
Titel: Antw:FHEM "Offlinemodus" - Ladeverzögerung des Interface wenn Internet Ausfall
Beitrag von: viegener am 14 Oktober 2017, 17:23:27
Zitat von: ftsinuglarity am 14 Oktober 2017, 17:05:09
Wenn ich dnsServer richtig verstehe, wird lokal umgeleitet, wenn die Zieladresse nicht erreichbar ist.

Nein darum geht es nicht, sondern darum, dass die eigentliche Abfrage vom Namen auf die IP-Adresse FHEM nicht blockiert. Bei den normalen Methoden über das Betriebssystem kann/wird es dazu kommen, dass bei Nichterreichbarkeit des DNS-Servers (auch indirekt), der Aufruf erst zurückkommt, wenn der timeout zuschlägt. Das sorgt für Blockaden in FHEM, die Du vermutlich als Dauer beim Laden wahrnimmst
Titel: Antw:FHEM "Offlinemodus" - Ladeverzögerung des Interface wenn Internet Ausfall
Beitrag von: ftsinuglarity am 14 Oktober 2017, 17:27:19
Zitat von: viegener am 14 Oktober 2017, 17:23:27
Nein darum geht es nicht, sondern darum, dass die eigentliche Abfrage vom Namen auf die IP-Adresse FHEM nicht blockiert. Bei den normalen Methoden über das Betriebssystem kann/wird es dazu kommen, dass bei Nichterreichbarkeit des DNS-Servers (auch indirekt), der Aufruf erst zurückkommt, wenn der timeout zuschlägt. Das sorgt für Blockaden in FHEM, die Du vermutlich als Dauer beim Laden wahrnimmst

Ah, so funktioniert das. Danke für die Erläuterung!

Definition dnsServer: .. falls dieses Attribut gesetzt ist, da es in diesem Fall FHEM eigene Routinen aufgerufen werden. Sonst werden die OS-eigenen, blockierenden Routinen inet_aton bzw gethostbyname aufgerufen.

Sobald dnsServer gesetzt ist, werden fhem-interne Abfragen verwendet, die nicht blockieren (auf timeout warten), anstatt der sonstigen OS Routinen.