Hallo,
ich möchte gerne 5 Minuten NACH dem Start von FHEM überprüfen, ob ein via USB angeschlossenes Gerät den Zustand "initialized" erreicht. Ist dem nicht so, soll nichts passieren, wenn doch dann etwas ausführen.
Mein DOIF Ansatz funktioniert im Grunde auch, ABER ich bekomme logischerweise direkt nach Neustart des FHEM Dienstes (oder dem Ändern des Status des Geräts) die Bedingung erfüllt - wait wartet NACH dem Abfragen der Bedingung. Ich muss aber VORHER das Prüfen der Bedingung verzögern, da das Gerät ein paar Sekunden braucht bis es in FHEM verfügbar ist.
define di_test DOIF ([DEVICE:state] ne "initialized") (set bla bla)
attr di_test wait 300
attr di_test do always
Mit notify kann ich direkt NACH dem Start von FHEM was triggern, habe aber auch hier keine Möglichkeit zum Verschieben der Bedingungsprüfung gefunden
define no_global_INITIALIZED notify global:INITIALIZED <set bla bla >
Finde leider nichts in der Commandref oder bin mal wieder einfach nur blind.
Ich weiss auch nicht ob DOIF oder watchdog oder notify die bessere Wahl wäre.
Bitte um Hilfe, steht gerade im Wald mit den lauter Bäumen :) Danke.
Zitat von: kleineranfaenger am 30 Oktober 2017, 15:02:36
Hallo,
ich möchte gerne 5 Minuten NACH dem Start von FHEM überprüfen, ob ein via USB angeschlossenes Gerät den Zustand "initialized" erreicht. Ist dem nicht so, soll nichts passieren, wenn doch dann etwas ausführen.
Mein DOIF Ansatz funktioniert im Grunde auch, ABER ich bekomme logischerweise direkt nach Neustart des FHEM Dienstes (oder dem Ändern des Status des Geräts) die Bedingung erfüllt - wait wartet NACH dem Abfragen der Bedingung. Ich muss aber VORHER das Prüfen der Bedingung verzögern, da das Gerät ein paar Sekunden braucht bis es in FHEM verfügbar ist.
define di_test DOIF ([DEVICE:state] ne "initialized") (set bla bla)
attr di_test wait 300
attr di_test do always
Mit notify kann ich direkt NACH dem Start von FHEM was triggern, habe aber auch hier keine Möglichkeit zum Verschieben der Bedingungsprüfung gefunden
define no_global_INITIALIZED notify global:INITIALIZED <set bla bla >
Finde leider nichts in der Commandref oder bin mal wieder einfach nur blind.
Ich weiss auch nicht ob DOIF oder watchdog oder notify die bessere Wahl wäre.
Bitte um Hilfe, steht gerade im Wald mit den lauter Bäumen :) Danke.
Z.B. so:
define no_global_INITIALIZED notify global:INITIALIZED define atTmp_set_bla at +00:05 set bla bla
Gruß
Dan
Hi,
anstatt "do Always" ein "do resetwait" dann sollte dein doif funktionieren.
Grüße
Achim
Wie wär's damit:
define no_global_INITIALIZED notify global:INITIALIZED sleep 300;; IF ([DEVICE:state] ne "initialized") (set bla bla)
Gruß,
Thorsten
Vielen Dank an alle für die Hilfe.
DOIF und "do resetwait" hat mir irgendwie nicht weitergeholfen :(
Auf das notify mit dem sleep hätte ich selbst kommen können! *facepalm*
Damit hab ich es jetzt gelöst.