Moin zusammen,
ich habe mir ein DOIF mit 3 Timern nach der Anleitung von https://wiki.fhem.de/wiki/DOIF/Zeitspanne_zwischen_zwei_Terminen_schalten gebastelt.
Leider übernimmt er den 2. und 3. Timer nicht korrekt. Die Uhrzeit wird korrekt gesetzt, aber das Datum leider nicht.
Weiß hier jemand wo das Problem liegt? Ich kann keins sehen :-(
list:
Internals:
DEF ([[$SELF:P_bhm,"00:00"]] and [?$SELF:P_byear] == $year and [?$SELF:P_bmon] == $month and [?$SELF:P_bday] == $mday)
({telegramSendMessage("Nachricht 1")})
DOELSEIF ([[$SELF:P_nhm,"00:00"]] and [?$SELF:P_nyear] == $year and [?$SELF:P_nmon] == $month and [?$SELF:P_nday] == $mday)
({telegramSendMessage("Nachricht 2")})
DOELSEIF ([[$SELF:P_ehm,"00:00"]] and [?$SELF:P_eyear] == $year and [?$SELF:P_emon] == $month and [?$SELF:P_eday] == $mday)
({telegramSendMessage("Nachricht 3")})
FUUID 5f7f04fb-f33f-cf0a-705a-ae11b3bad070cfae
MODEL FHEM
NAME doif_Urlaub
NOTIFYDEV global,doif_Urlaub
NR 36766
NTFY_ORDER 50-doif_Urlaub
STATE initialize
TYPE DOIF
VERSION 22913 2020-10-04 21:46:02
.attraggr:
.attrminint:
Helper:
DBLOG:
mode:
dbLog:
TIME 1602159867.47183
VALUE enabled
READINGS:
2020-10-09 09:14:08 P_bday 10
2020-10-09 09:14:37 P_bhm 08:00
2020-10-08 14:28:56 P_bmon 10
2020-10-08 14:28:43 P_byear 2020
2020-10-09 09:14:26 P_eday 19
2020-10-09 09:29:37 P_ehm 15:00
2020-10-08 14:29:18 P_emon 10
2020-10-08 14:29:20 P_eyear 2020
2020-10-09 09:21:27 P_nday 18
2020-10-09 09:21:42 P_nhm 15:00
2020-10-08 14:29:12 P_nmon 10
2020-10-08 14:29:18 P_nyear 2020
2020-10-09 09:31:34 mode enabled
2020-10-09 09:31:34 state initialize
2020-10-09 09:30:36 timer_01_c01 10.10.2020 08:00:00
2020-10-09 09:30:36 timer_02_c02 09.10.2020 15:00:00
2020-10-09 09:30:36 timer_03_c03 09.10.2020 15:00:00
Regex:
accu:
itimer:
doif_Urlaub:
itimer:
P_bhm ^doif_Urlaub$:^P_bhm:
P_ehm ^doif_Urlaub$:^P_ehm:
P_nhm ^doif_Urlaub$:^P_nhm:
attr:
waitdel:
condition:
0 ::DOIF_time_once($hash,0,$wday) and ::ReadingValDoIf($hash,'doif_Urlaub','P_byear') == $year and ::ReadingValDoIf($hash,'doif_Urlaub','P_bmon') == $month and ::ReadingValDoIf($hash,'doif_Urlaub','P_bday') == $mday
1 ::DOIF_time_once($hash,1,$wday) and ::ReadingValDoIf($hash,'doif_Urlaub','P_nyear') == $year and ::ReadingValDoIf($hash,'doif_Urlaub','P_nmon') == $month and ::ReadingValDoIf($hash,'doif_Urlaub','P_nday') == $mday
2 ::DOIF_time_once($hash,2,$wday) and ::ReadingValDoIf($hash,'doif_Urlaub','P_eyear') == $year and ::ReadingValDoIf($hash,'doif_Urlaub','P_emon') == $month and ::ReadingValDoIf($hash,'doif_Urlaub','P_eday') == $mday
days:
do:
0:
0 {telegramSendMessage("Nachricht 1")}
1:
0 {telegramSendMessage("Nachricht 2")}
2:
0 {telegramSendMessage("Nachricht 3")}
3:
helper:
DEVFILTER ^global$|^doif_Urlaub$
NOTIFYDEV global|doif_Urlaub
globalinit 1
last_timer 3
sleeptimer -1
intervalfunc:
localtime:
0 1602309600
1 1602248400
2 1602248400
realtime:
0 08:00:00
1 15:00:00
2 15:00:00
time:
0 [doif_Urlaub:P_bhm,"00:00"]
1 [doif_Urlaub:P_nhm,"00:00"]
2 [doif_Urlaub:P_ehm,"00:00"]
timeCond:
0 0
1 1
2 2
timer:
0 0
1 0
2 0
timers:
0 0
1 1
2 2
triggertime:
1602248400:
localtime 1602248400
hash:
1602309600:
localtime 1602309600
hash:
uiState:
uiTable:
Attributes:
DbLogExclude .*
alias Terminspanne
group Administration
icon time_calendar
readingList P_bhm P_bday P_bmon P_byear P_nhm P_nday P_nmon P_nyear P_ehm P_eday P_emon P_eyear
room 9_09_Einstellungen
setList P_bhm:time
P_bday:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31
P_bmon:1,2,3,4,5,6,7,8,9,10,11,12
P_byear:2020,2021,2022,2023,2024,2025,2026
P_nhm:time
P_nday:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31
P_nmon:1,2,3,4,5,6,7,8,9,10,11,12
P_nyear:2020,2021,2022,2023,2024,2025,2026
P_ehm:time
P_eday:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31
P_emon:1,2,3,4,5,6,7,8,9,10,11,12
P_eyear:2020,2021,2022,2023,2024,2025,2026
verbose 5
webCmd P_bhm:P_bday:P_bmon:P_byear:P_nhm:P_nday:P_nmon:P_nyear:P_ehm:P_eday:P_emon:P_eyear
widgetOverride setList:textField-long
Vielen Dank
Man kann kein Datum bei DOIF-Timern setzen. Das von DOIF bestimmte Datum, ist das Datum des nächsten Trigger-Zeitpunktes.