Ich habe mehrere Modi die in Abhängigkeit vom residents schalten.
Mein Handy ist present, war vielleicht kurz absent. Darauf hin mus dann der MOdi auf Away geganbgen sein. Handy ist aber nun wieder present, der Modi bleibt aber away.
Hier die Definition des Modus.
([residents] eq "home") (set Modus_FHZ Auto)
DOELSEIF ([residents] eq "absent") (set Modus_FHZ Away)
DOELSEIF ([residents] eq "gone") (set Modus_FHZ Holiday)
DOELSE (set Modus_FHZ AUS)
Oder fehlt hier vielleicht das Attribute do always?
Hier das List.
Internals:
CFGFN ./FHEM/fhem_activeactors.cfg
DEF ([residents] eq "home") (set Modus_FHZ Auto)
DOELSEIF ([residents] eq "absent") (set Modus_FHZ Away)
DOELSEIF ([residents] eq "gone") (set Modus_FHZ Holiday)
DOELSE (set Modus_FHZ AUS)
NAME Modus_FHZ.Anwesenheit
NR 269
NTFY_ORDER 50-Modus_FHZ.Anwesenheit
STATE cmd_2
TYPE DOIF
Helper:
DBLOG:
cmd:
logdb:
TIME 1521659254.57558
VALUE 2
cmd_event:
logdb:
TIME 1521659254.57558
VALUE residents
cmd_nr:
logdb:
TIME 1521659254.57558
VALUE 2
state:
logdb:
TIME 1521659254.57558
VALUE cmd_2
wait_timer:
logdb:
TIME 1521659407.41057
VALUE 21.03.2018 20:25:07 cmd_1 residents
READINGS:
2018-03-21 20:23:08 Device residents
2018-03-21 20:07:34 cmd 2
2018-03-21 20:07:34 cmd_event residents
2018-03-21 20:07:34 cmd_nr 2
2018-03-21 20:23:08 e_residents_STATE home
2018-03-13 13:29:20 mode enabled
2018-03-21 20:07:34 state cmd_2
2018-03-21 20:10:07 wait_timer 21.03.2018 20:25:07 cmd_1 residents
Regex:
condition:
0 InternalDoIf($hash,'residents','STATE') eq "home"
1 InternalDoIf($hash,'residents','STATE') eq "absent"
2 InternalDoIf($hash,'residents','STATE') eq "gone"
devices:
0 residents
1 residents
2 residents
all residents
do:
0:
0 set Modus_FHZ Auto
1:
0 set Modus_FHZ Away
2:
0 set Modus_FHZ Holiday
3:
0 set Modus_FHZ AUS
helper:
DOIF_Readings_events
DOIF_eventas
event durTimerPresence_cr: 13,durTimerPresence: 00:13:01
globalinit 1
last_timer 0
sleepdevice residents
sleepsubtimer 0
sleeptimer 0
timerdev residents
timerevent durTimerPresence_cr: 13,durTimerPresence: 00:13:01
triggerDev residents
timerevents:
durTimerPresence_cr: 13
durTimerPresence: 00:13:01
timereventsState:
durTimerPresence_cr: 13
durTimerPresence: 00:13:01
triggerEvents:
durTimerPresence_cr: 13
durTimerPresence: 00:13:01
triggerEventsState:
durTimerPresence_cr: 13
durTimerPresence: 00:13:01
internals:
0 residents:STATE
1 residents:STATE
2 residents:STATE
all residents:STATE
itimer:
readings:
trigger:
uiState:
uiTable:
Attributes:
group Anwesenheit
room Automation
wait 900:180
Du hast aber ein Wait Timer 900 für "present". Was ist jetzt der Status? Hat sich geändert?
900 sind 15 Min. Hat sich aber nichts am Status geändert.
Was ich meine: Modus_FHZ geht erst auf "Auto" 900s nachdem [resident] wieder auf home springt.
In deinem List vom DOIF sieht man, dass er den timer um 20:10:07 auf 20:25:07 setzt, aber, dass resident wieder um 20:23 getriggert hat.
Schau mal die Log von resident, was er in dieser Periode gemacht hat.
Ich teste es nochmal wegen der Zeit und meld mich diesbezüglich noch.
Allerdings habe ich noch eine ander Baustelle. Ich steuere ebenfalls über einen Modus das Licht.
([Modus_Licht] eq "Auto" and [Tageslicht] eq "dunkel") (set WZ.Fensterleuchte_CUL.dummy on)
DOELSEIF ([Modus_Licht] eq "Auto" and ([22:00|So Mo Di Mi Do] or [23:30|Fr Sa])) (set WZ.Fensterleuchte_CUL.dummy off)
DOELSE (set WZ.Fensterleuchte_CUL.dummy off)
Gesetzt wird der Modus_Licht...
([residents] eq "home") (set Modus_Licht Auto)
DOELSE (set Modus_Licht AUS)
List...
Internals:
CFGFN ./FHEM/fhem_multimedia.cfg
DEF ([residents] eq "home") (set Modus_Licht Auto)
DOELSE (set Modus_Licht AUS)
NAME Modus_Licht.Anwesenheit
NR 790
NTFY_ORDER 50-Modus_Licht.Anwesenheit
STATE cmd_1
TYPE DOIF
Helper:
DBLOG:
cmd:
logdb:
TIME 1521830400.61081
VALUE 1
cmd_event:
logdb:
TIME 1521830400.61081
VALUE residents
cmd_nr:
logdb:
TIME 1521830400.61081
VALUE 1
mode:
logdb:
TIME 1521138449.05274
VALUE enabled
state:
logdb:
TIME 1521830400.61081
VALUE cmd_1
wait_timer:
logdb:
TIME 1521830401.72785
VALUE 23.03.2018 19:55:01 cmd_1 residents
READINGS:
2018-03-23 19:50:05 Device residents
2018-03-23 19:40:00 cmd 1
2018-03-23 19:40:00 cmd_event residents
2018-03-23 19:40:00 cmd_nr 1
2018-03-23 19:50:05 e_residents_STATE home
2018-03-15 19:27:28 mode enabled
2018-03-23 19:40:00 state cmd_1
2018-03-23 19:40:01 wait_timer 23.03.2018 19:55:01 cmd_1 residents
Regex:
condition:
0 InternalDoIf($hash,'residents','STATE') eq "home"
devices:
0 residents
all residents
do:
0:
0 set Modus_Licht Auto
1:
0 set Modus_Licht AUS
helper:
DOIF_Readings_events
DOIF_eventas
event durTimerPresence_cr: 70,durTimerPresence: 01:10:14
globalinit 1
last_timer 0
sleepdevice residents
sleepsubtimer 0
sleeptimer 0
timerdev residents
timerevent durTimerPresence_cr: 70,durTimerPresence: 01:10:14
triggerDev residents
timerevents:
durTimerPresence_cr: 70
durTimerPresence: 01:10:14
timereventsState:
durTimerPresence_cr: 70
durTimerPresence: 01:10:14
triggerEvents:
durTimerPresence_cr: 70
durTimerPresence: 01:10:14
triggerEventsState:
durTimerPresence_cr: 70
durTimerPresence: 01:10:14
internals:
0 residents:STATE
all residents:STATE
itimer:
readings:
trigger:
uiState:
uiTable:
Attributes:
do always
group Anwesenheit
room Automation
wait 900:180
Schalte ich den Modus manuell ab, schaltet dieser kurze Zeit später wieder auf Auto. Am do always liegt es nicht.