FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: kleineranfaenger am 30 Oktober 2017, 15:02:36

Titel: [gelöst] Verzögertes Überprüfen auf nicht verfügbare Geräte
Beitrag 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.
Titel: Antw:Verzögertes Überprüfen auf nicht verfügbare Geräte
Beitrag von: DeeSPe am 30 Oktober 2017, 15:58:46
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
Titel: Antw:Verzögertes Überprüfen auf nicht verfügbare Geräte
Beitrag von: CBSnake am 30 Oktober 2017, 16:08:01
Hi,

anstatt "do Always" ein "do resetwait" dann sollte dein doif funktionieren.

Grüße
Achim
Titel: Antw:Verzögertes Überprüfen auf nicht verfügbare Geräte
Beitrag von: Thorsten Pferdekaemper am 30 Oktober 2017, 16:59:10
Wie wär's damit:

define no_global_INITIALIZED notify global:INITIALIZED sleep 300;; IF ([DEVICE:state] ne "initialized") (set bla bla)

Gruß,
   Thorsten
Titel: [gelöst] Verzögertes Überprüfen auf nicht verfügbare Geräte
Beitrag von: kleineranfaenger am 30 Oktober 2017, 21:59:35
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.