Guten Abend,
ich habe ein DOIF für meine Außenbeleuchtung, daß auf Twilight-ss_indoor und -sr_indoor reagieren soll:
Internals:
CFGFN ./FHEM/fhem-timers.cfg
DEF ( [05:30-[MyTwilight:sr_indoor]|8])
(set D_TimerAussenlicht on, set Aussenlicht on) ## Cmd1
DOELSEIF
( [06:30-[MyTwilight:sr_indoor]|7])
(set D_TimerAussenlicht on, set Aussenlicht on) ## Cmd2
DOELSEIF
( [[MyTwilight:ss_indoor]-22:15])
(set D_TimerAussenlicht on, set Aussenlicht on) ## Cmd3
DOELSEIF
( [[MyTwilight:ss_indoor]-01:00] and [PresTVWintergarten:presence] eq "present")
(set D_TimerAussenlicht on, set Aussenlicht on) ## Cmd4
DOELSE
(set D_TimerAussenlicht off, set Aussenlicht off) ## Cmd5
NAME DI_TimerPresenceAussenlichtOnOff
NR 769
NTFY_ORDER 50-DI_TimerPresenceAussenlichtOnOff
STATE initialized
TYPE DOIF
Readings:
2016-04-12 21:41:00 state initialized
2016-04-12 21:41:01 timer_1_c1 13.04.2016 05:30:00|8
2016-04-12 22:12:21 timer_2_c1 13.04.2016 06:40:39|8
2016-04-12 21:41:01 timer_3_c2 13.04.2016 06:30:00|7
2016-04-12 22:12:21 timer_4_c2 13.04.2016 06:40:39|7
2016-04-12 22:12:21 timer_5_c3 13.04.2016 20:09:17
2016-04-12 21:41:01 timer_6_c3 12.04.2016 22:15:00
2016-04-12 22:12:21 timer_7_c4 13.04.2016 20:09:17
2016-04-12 21:41:01 timer_8_c4 13.04.2016 01:00:00
Condition:
0 DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"8")
1 DOIF_time($hash,$hash->{realtime}{2},$hash->{realtime}{3},$wday,$hms,"7")
2 DOIF_time($hash,$hash->{realtime}{4},$hash->{realtime}{5},$wday,$hms,"")
3 DOIF_time($hash,$hash->{realtime}{6},$hash->{realtime}{7},$wday,$hms,"") and ReadingValDoIf($hash,'PresTVWintergarten','presence','','',AttrVal($hash->{NAME},'notexist',undef)) eq "present"
Days:
0 8
1 8
2 7
3 7
Devices:
3 PresTVWintergarten
all PresTVWintergarten
Do:
0:
0 set D_TimerAussenlicht on, set Aussenlicht on
1:
0 set D_TimerAussenlicht on, set Aussenlicht on
2:
0 set D_TimerAussenlicht on, set Aussenlicht on
3:
0 set D_TimerAussenlicht on, set Aussenlicht on
4:
0 set D_TimerAussenlicht off, set Aussenlicht off
Helper:
globalinit 1
last_timer 8
sleeptimer -1
Interval:
0 -1
1 0
2 -1
3 2
4 -1
5 4
6 -1
7 6
Itimer:
all MyTwilight
Localtime:
0 1460518200
1 1460522439
2 1460521800
3 1460522439
4 1460570957
5 1460492100
6 1460570957
7 1460502000
Readings:
3 PresTVWintergarten:presence
all PresTVWintergarten:presence
Realtime:
0 05:30:00
1 06:40:39
2 06:30:00
3 06:40:39
4 20:09:17
5 22:15:00
6 20:09:17
7 01:00:00
Regexp:
All:
State:
Time:
0 05:30:00
1 [MyTwilight:sr_indoor]
2 06:30:00
3 [MyTwilight:sr_indoor]
4 [MyTwilight:ss_indoor]
5 22:15:00
6 [MyTwilight:ss_indoor]
7 01:00:00
Timecond:
0 0
1 0
2 1
3 1
4 2
5 2
6 3
7 3
Timer:
0 0
1 0
2 0
3 0
4 0
5 0
6 0
7 0
Timers:
0 0 1
1 2 3
2 4 5
3 6 7
Triggertime:
1460492100:
localtime 1460492100
Hash:
1460502000:
localtime 1460502000
Hash:
1460518200:
localtime 1460518200
Hash:
1460521800:
localtime 1460521800
Hash:
1460522439:
localtime 1460522439
Hash:
1460570957:
localtime 1460570957
Hash:
Attributes:
do always
room Aussen
Die berechneten Schaltzeiten (Readings) des DOIFs sind:
Readings:
2016-04-12 21:41:00 state initialized
2016-04-12 21:41:01 timer_1_c1 13.04.2016 05:30:00|8
2016-04-12 22:12:21 timer_2_c1 13.04.2016 06:40:39|8
2016-04-12 21:41:01 timer_3_c2 13.04.2016 06:30:00|7
2016-04-12 22:12:21 timer_4_c2 13.04.2016 06:40:39|7
2016-04-12 22:12:21 timer_5_c3 13.04.2016 20:09:17
2016-04-12 21:41:01 timer_6_c3 12.04.2016 22:15:00
2016-04-12 22:12:21 timer_7_c4 13.04.2016 20:09:17
2016-04-12 21:41:01 timer_8_c4 13.04.2016 01:00:00
Es ist jetzt 22:14 und timer_5_c3 entspricht der [MyTwilight:ss_indoor]-Definition. Jedoch ist diese bereits für morgen - nicht für heute.
Damit funktioniert ein Konstrukt wie
DOELSEIF ( [[MyTwilight:ss_indoor]-22:15])
niemals, denn der Schaltpunkt ist immer morgen, am nächsten Tag - nicht heute.
Verstehe ich hier etwas falsch, oder ist das ein "Fehler"?
Danke, -MN