Timer (AT) Verzögerung nach FHEM Neustart

Begonnen von ext23, 24 Januar 2018, 07:29:49

Vorheriges Thema - Nächstes Thema

ext23

Moin,

ich hab da mal ein kleines kosmetisches Problem. Ich frage alle 10 Sekunden über einen Timer den Status meiner 1-Wire iButtons am Schlüsselkasten ab und reagiere dementsprechend. Jetzt habe ich aber das Problem, dass nach einem FHEM Neustart erst mal alles aus geht. Ich "vermute" der Timer wird schon ausgeführt obwohl der 1-Wire Bus den Status der 1-Wire Buttons noch nicht aktualisiert hat.

Gibt es irgend eine Möglichkeit, einen Timer nach einem FHEM Neustart eine gewisse Totzeit vorzugeben in welcher er nicht auslöst? Also bis sich FHEM beruhigt hat.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

dev0

Ohne weitere Details zu kennen, könnest Du die FHEM Uptime berücksichtigen:

my $uptime = time - $fhem_started;

ext23

Mhh stimmt, klar, genau so mach ich das, Daniel.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

kadettilac89

#3
alternativ:

Event global:INITIALIZED auswerten (ein Notify) und das erste AT deines 1wire überspringen. "attr <AT-NAME> skip_next 1"

Alternative2: Abwandlung
Event INITIALIZED aber dann "set <AT-NAME> inactive" + ein AT mit deiner "Totzeit" um es dann nach z. B. 20 Sec. wieder auf active zu setzen (set <AT-NAME> active)

nils_

Zitat von: ext23 am 24 Januar 2018, 07:29:49
Also bis sich FHEM beruhigt hat.
ja das ist auch immer so aufgeregt nach dem neustarten  ;D ;D ;D


könntest du nicht auch mittels ReadingsAge() (link) prüfen ob schon was eingelesen wurde?
viele Wege in FHEM es gibt!

ext23

Na da habe ich ja jetzt genug Varianten, danke.

Bei dem trigger auf global:INITIALIZED bin ich mir nicht sicher, ob es nicht doch passieren kann, dass der Timer ausgelöst wird bevor der trigger ausgelöst hat.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

betateilchen

Zitat von: ext23 am 24 Januar 2018, 20:15:12
Na da habe ich ja jetzt genug Varianten, danke.

Aber noch lange nicht alle... Du könntest nämlich auch auf $init_done prüfen :)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

nils_

Zitat von: betateilchen am 24 Januar 2018, 21:37:52
Aber noch lange nicht alle... Du könntest nämlich auch auf $init_done prüfen :)
hat sich fhem denn bis dahin auch ausreichend beruhigt?  :o 8)
viele Wege in FHEM es gibt!

ext23

Tja das ist die Frage ja.

Ich werd mal ein bissel rumprobieren. Sonst nehme ich das init, packt noch ne Schippe an Sekunden drauf und dann gehts los.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Damian

Zitat von: ext23 am 24 Januar 2018, 07:29:49
Moin,

ich hab da mal ein kleines kosmetisches Problem. Ich frage alle 10 Sekunden über einen Timer den Status meiner 1-Wire iButtons am Schlüsselkasten ab und reagiere dementsprechend. Jetzt habe ich aber das Problem, dass nach einem FHEM Neustart erst mal alles aus geht. Ich "vermute" der Timer wird schon ausgeführt obwohl der 1-Wire Bus den Status der 1-Wire Buttons noch nicht aktualisiert hat.

Gibt es irgend eine Möglichkeit, einen Timer nach einem FHEM Neustart eine gewisse Totzeit vorzugeben in welcher er nicht auslöst? Also bis sich FHEM beruhigt hat.

/Daniel

Warum pollst du über Timer, statt auf Events zu reagieren. Das Abfrageintervall lässt sich doch für das jeweilige 1-Wire-Device einstellen. Wenn 1-Wire-Device nicht hochgefahren ist, kann es auch keine Events geben ;)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

ext23

Das hatte ich vorher, aber das gabs es mit irgend etwas Probleme. Ka was das jezt im Detail war. Ein Notify habe ich drauf, aber das Pollen war nötig wegen etwas Anderem. Aber ehrlich gesagt ist das mittlerweile so viel und so verzweigt das ich da selber nicht mehr ganz durch blicke und froh bin das es aktuell stabil läuft. Da ist ne Ausgangsverzögerung und all der misst drin. Irgend etwas hatte sich da glaube immer überschnitten so das ich zusätzlich zu den normalen getriggerten events alle 10 Sekunden zur Sicherheit abfrage ob der status noch so stimmt wie er ist. Aber wie gesagt trigger auf den presence event habe ich, da ist quasi der Haupteil drin. Das pollen ist nur ein NotNagel.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

nils_

dann start doch dein workaround-polling erst wenn du einen event (den ersten1) bekommen hast.

Zitat von: ext23 am 25 Januar 2018, 10:13:48
Aber ehrlich gesagt ist das mittlerweile so viel und so verzweigt das ich da selber nicht mehr ganz durch blicke und froh bin das es aktuell stabil läuft.
ui ui ui  :o
hoffentlich läuft es dann auch weiterhin stabil.
viele Wege in FHEM es gibt!