ecmd wiederverbindung nach netzausfall schlägt fehl

Begonnen von elektrixxer, 08 November 2014, 21:08:54

Vorheriges Thema - Nächstes Thema

elektrixxer

hallo,
ich habe ein avr net io board mit ethersex und mehreren 1wire sensoren am laufen. das board ist über eine vpn verbindung über das internet mit meinem fhem server verbunden und wird durch diesen abgefragt. das ganze funktioniert absolut perfekt bis auf die tatsache das nach  einem neuaufbau der vpn verbindung (24h zwangstrennung) keine temperaturwerte mehr abgefragt werden und das ecmd-device als disconnected angezeigt wird. sobald ich den fhem server neustarte funktioniert es wieder einwandfrei bis zum nächsten netzausfall. nach vielem recherchieren habe ich folgende zeile in die fhem.cfg eingefügt

define myReconnect notify ECMD_01:DISCONNECTED set ECMD_01 reopen


allerdings funktioniert das irgendwie nur bei kurzzeitigen netzausfällen. der aufbau der vpn verbindung dauert bei mir mehrere minuten bis die verbindung wieder stabil steht. ich vermute das fhem einen einmaligen reconnect versucht und falls der fehlschlägt hat man halt pech gehabt.

gibt es eine möglichkeit eine reconnect schleife zu konstruieren die so lange durchläuft bis eine erneute verbindung zustande kommt?

ich würde mich echt freuen wenn mir jemand die zündende idee geben könnte.  irgendwie ist  mein kopf und mein wissen (noch) nicht groß genug für die lösung

tpm88

Du kannst das set Kommando im notify mit einem at ersetzen, welches den reopen erst nach n Minuten ( nach Wiederaufbau des VPN ) auslöst.
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT

elektrixxer

oh, vielen dank für die schnelle antwort.

ich hab das gleich mal geändert und schaue morgen mal ob der die neuverbindung über nacht geschafft hat.

allerdings habe ich dann ja trotzdem nur einen versuch. falls das netz mal aus welchem grund auch immer länger gestört sein sollte habe ich wieder pech gehabt. :(

heikoh81

Also bei mir funktioniert das leider nicht zuverlässig.
Ich habe einfach probehalber mal einen 10-Sekunden-Timer eingerichtet, der alle 10-Sekunden den State des ECMD-Devices prüft und bei "disconnected" dann "set ECMD reopen" ausführt.
Klappt nicht zuverlässig.

Einzig zuverlässige Methode für einen reconnect ist bei mir "rereadcfg".
Da der Raspi im Heizraum nur 1 ECMD-Device betreut, geht das zackig. Bei einem großen FHEM allerdings kein praktikabler Weg...