Erst schalten, wenn sich der Status nicht mehr ändert

Begonnen von Topgun, 24 Oktober 2016, 21:36:13

Vorheriges Thema - Nächstes Thema

Topgun

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.

Ellert


Topgun