FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Topgun am 24 Oktober 2016, 21:36:13

Titel: Erst schalten, wenn sich der Status nicht mehr ändert
Beitrag von: Topgun am 24 Oktober 2016, 21:36:13
Hallo,

ich haben einen Status Anwesenheit

define Anwesenheit dummy
attr Anwesenheit devStateIcon ZuHause:status_available@00FF00:Unterwegs Unterwegs:status_away_2@FFFF00:Urlaub Urlaub:status_locked@FF0000:ZuHause
attr Anwesenheit group Status
attr Anwesenheit setList state:ZuHause,Unterwegs,Urlaub


den ich durch einen Klick auf das Symbol ändern kann.

Jetzt möchte ich abhängig von dem Status Aktionen ausführen (z.B. alle Lichter aus, ...). Das wäre auch kein Problem.
Allerdings möchte ich das erst machen, wenn sich nach einer Statusänderung sich z.B. der Status 10 Sekunden lang nicht mehr geändert hat.

Hintergrund:
Wechsel ich von "ZuHause" auf "Urlaub", muss ich auch über den Status "Unterwegs" gehen. Ich möchte aber vermeiden, dass der Status "Unterwegs" ausgeführt wird.

Ist so etwas mit DOIF machbar?

Bisher habe ich

define di_Anwesenheit DOIF ([Anwesenheit] eq "ZuHause") ({Log 3, "ZuHause"}) \
DOELSEIF ([Anwesenheit] eq "Unterwegs") ({Log 3, "Unterwegs"}) \
DOELSEIF ([Anwesenheit] eq "Urlaub") ({Log 3, "Urlaub"})
attr di_Anwesenheit waitdel 10


Ich habe auch andere Wait-Kommandos durchprobiert, aber ich konnte noch nicht genau das Verhalten erreichen.
Titel: Antw:Erst schalten, wenn sich der Status nicht mehr ändert
Beitrag von: Ellert am 24 Oktober 2016, 21:44:21
Zitatwait 10:10:10
waitdel 10
Titel: Antw:Erst schalten, wenn sich der Status nicht mehr ändert
Beitrag von: Topgun am 24 Oktober 2016, 22:12:12
Super ... vielen Dank.