FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Charity am 18 März 2015, 13:18:35

Titel: Dummy Wert setzen erst wenn nach 5 min anderer Wert immer noch gleich ist
Beitrag von: Charity am 18 März 2015, 13:18:35
Ich würde gerne wenn das notify für mein Handy auf present ausgelöst wird, nach 5 min checken ob mein Handy immer noch present ist und erst dann einen Dummy Wert aktualisieren.

Meine Idee wäre gewesen, dass mit einem DOIF zu lösen, wie hier ->

define ntf_HomeComingRobertPresent notify Robert_Handy:present {\
fhem "define di_RobertDaheim DOIF ( [+00:05:00] and [Robert_Handy] eq "present" ) (set ComingHomeRobert home);;\
}


leider bekomme ich dabei im Log stets die Meldung ->

PERL WARNING: String found where operator expected at (eval 1536) line 2, at end of line
und
PERL WARNING: Bareword found where operator expected at (eval 1567) line 2, near ""define di_RobertDaheim DOIF ( [+00:05:00] and [Robert_Handy] eq "present"

Kann mir jemand sagen, wo ich meinen Fehler habe. Ich komm nicht drauf. Oder gibt es doch eine bessere Lösung für mein Problem ?

Danke

Titel: Antw:Dummy Wert setzen erst wenn nach 5 min anderer Wert immer noch gleich ist
Beitrag von: marvin78 am 18 März 2015, 13:19:27
Das ist eigentlich ein typischer Andwendungsfall für einen watchdog.
Titel: Antw:Dummy Wert setzen erst wenn nach 5 min anderer Wert immer noch gleich ist
Beitrag von: Charity am 18 März 2015, 13:24:50
Danke, dann werde ich mir das mal ansehen.
Titel: Antw:Dummy Wert setzen erst wenn nach 5 min anderer Wert immer noch gleich ist
Beitrag von: Damian am 18 März 2015, 13:36:24
Zitat von: Charity am 18 März 2015, 13:18:35
Ich würde gerne wenn das notify für mein Handy auf present ausgelöst wird, nach 5 min checken ob mein Handy immer noch present ist und erst dann einen Dummy Wert aktualisieren.

Meine Idee wäre gewesen, dass mit einem DOIF zu lösen, wie hier ->

define ntf_HomeComingRobertPresent notify Robert_Handy:present {\
fhem "define di_RobertDaheim DOIF ( [+00:05:00] and [Robert_Handy] eq "present" ) (set ComingHomeRobert home);;\
}


leider bekomme ich dabei im Log stets die Meldung ->

PERL WARNING: String found where operator expected at (eval 1536) line 2, at end of line
und
PERL WARNING: Bareword found where operator expected at (eval 1567) line 2, near ""define di_RobertDaheim DOIF ( [+00:05:00] and [Robert_Handy] eq "present"

Kann mir jemand sagen, wo ich meinen Fehler habe. Ich komm nicht drauf. Oder gibt es doch eine bessere Lösung für mein Problem ?

Danke

dann eher so (ohne notify):

define di_RobertDaheim DOIF ( [Robert_Handy] eq "present" ) (set ComingHomeRobert home)
define di_RobertDaheim wait 300


Gruß

Damian

Titel: Antw:Dummy Wert setzen erst wenn nach 5 min anderer Wert immer noch gleich ist
Beitrag von: FHEMAN am 18 März 2015, 16:12:13
Zitat von: Damian am 18 März 2015, 13:36:24
dann eher so (ohne notify):

define di_RobertDaheim DOIF ( [Robert_Handy] eq "present" ) (set ComingHomeRobert home)
define di_RobertDaheim wait 300


Gruß

Damian
Du meinst
attr di_RobertDaheim wait 300
oder?
Titel: Antw:Dummy Wert setzen erst wenn nach 5 min anderer Wert immer noch gleich ist
Beitrag von: Charity am 18 März 2015, 16:23:09
Danke,

mit

define di_RobertDaheim DOIF ( [Robert_Handy] eq "present" ) (set ComingHomeRobert home)
attr di_RobertDaheim wait 300


schaltet der dummy dann auch nach 5 min in den richtigen Modus. Meine Frage ist nur, erfolgt hier nochmals eine Prüfung ob der Wert Robert_Handy auch immer noch present ist ?

Titel: Antw:Dummy Wert setzen erst wenn nach 5 min anderer Wert immer noch gleich ist
Beitrag von: Damian am 18 März 2015, 16:57:17
Zitat von: Charity am 18 März 2015, 16:23:09
Danke,

mit

define di_RobertDaheim DOIF ( [Robert_Handy] eq "present" ) (set ComingHomeRobert home)
attr di_RobertDaheim wait 300


schaltet der dummy dann auch nach 5 min in den richtigen Modus. Meine Frage ist nur, erfolgt hier nochmals eine Prüfung ob der Wert Robert_Handy auch immer noch present ist ?

Wenn Robert_Handy den Zustand ändert, dann wird das Modul getriggert und wenn das innerhalb der 5 Minuten passiert, dann wird home nicht gesetzt.

Gruß

Damian