Hallo liebe Leute,
ich habe folgendes Problem:
DOIF (A) hat einen einstellbaren Zeitslider mittels setList, welches ein reading $SELF:workingtime mit den Werten true und false schreibt.
Hier ist ein list des DOIF:
Internals:
CFGFN
DEF (
[[$SELF:Group_A_start]|8]
and ![[$SELF:Group_B_start]|8]
)
(setreading $SELF a_working true)
DOELSEIF(
[[$SELF:Group_B_start]|8]
and ![[$SELF:Group_A_start]|8]
)
(setreading $SELF b_working true)
DOELSEIF(
[[$SELF:Group_A_End]|8]
and ![[$SELF:Group_B_End]|8]
)
(setreading $SELF a_working false)
DOELSEIF(
[[$SELF:Group_B_End]|8]
and ![[$SELF:Group_A_End]|8]
)
(setreading $SELF b_working false)
DOELSEIF(
[[$SELF:Group_A_start]|8]
and [[$SELF:Group_B_start]|8]
)
(setreading $SELF a_working true)
(setreading $SELF b_working true)
DOELSEIF(
[[$SELF:Group_A_End]|8]
and [[$SELF:Group_B_End]|8]
)
(setreading $SELF a_working false)
(setreading $SELF b_working false)
FUUID 63eb7d51-f33f-e865-10e4-25a880ca831aa36c
MODEL FHEM
NAME workingtime
NOTIFYDEV workingtime,global
NR 467
NTFY_ORDER 50-workingtime
STATE true / true
TYPE DOIF
VERSION 26655 2022-11-05 18:33:59
eventCount 64
READINGS:
2023-02-14 14:21:04 Group_A_End 19:00
2023-02-14 14:20:55 Group_A_start 07:00
2023-02-14 14:21:08 Group_B_End 19:00
2023-02-14 14:20:58 Group_B_start 07:00
2023-02-15 13:13:09 a_working true
2023-02-15 13:13:09 b_working true
2023-02-15 13:13:09 cmd 5.2
2023-02-15 13:13:09 cmd_event set_cmd_5
2023-02-15 13:13:09 cmd_nr 5
2023-02-15 13:13:09 cmd_seqnr 2
2023-02-15 07:00:00 group_a_atwork true
2023-02-15 07:00:00 group_b_atwork true
2023-02-15 13:12:25 mode enabled
2023-02-15 13:13:09 state cmd_5
2023-02-15 13:12:25 timer_01_c01 16.02.2023 07:00:00|8
2023-02-15 13:12:25 timer_02_c01 16.02.2023 07:00:00|8
2023-02-15 13:12:25 timer_03_c02 16.02.2023 07:00:00|8
2023-02-15 13:12:25 timer_04_c02 16.02.2023 07:00:00|8
2023-02-15 13:12:25 timer_05_c03 15.02.2023 19:00:00|8
2023-02-15 13:12:25 timer_06_c03 15.02.2023 19:00:00|8
2023-02-15 13:12:25 timer_07_c04 15.02.2023 19:00:00|8
2023-02-15 13:12:25 timer_08_c04 15.02.2023 19:00:00|8
2023-02-15 13:12:25 timer_09_c05 16.02.2023 07:00:00|8
2023-02-15 13:12:25 timer_10_c05 16.02.2023 07:00:00|8
2023-02-15 13:12:25 timer_11_c06 15.02.2023 19:00:00|8
2023-02-15 13:12:25 timer_12_c06 15.02.2023 19:00:00|8
Regex:
accu:
collect:
itimer:
workingtime:
itimer:
Group_A_End ^workingtime$:^Group_A_End:
Group_A_start ^workingtime$:^Group_A_start:
Group_B_End ^workingtime$:^Group_B_End:
Group_B_start ^workingtime$:^Group_B_start:
attr:
cmdState:
wait:
waitdel:
condition:
0 ::DOIF_time_once($hash,0,$wday,"8") and !::DOIF_time_once($hash,1,$wday,"8")
1 ::DOIF_time_once($hash,2,$wday,"8") and !::DOIF_time_once($hash,3,$wday,"8")
2 ::DOIF_time_once($hash,4,$wday,"8") and !::DOIF_time_once($hash,5,$wday,"8")
3 ::DOIF_time_once($hash,6,$wday,"8") and !::DOIF_time_once($hash,7,$wday,"8")
4 ::DOIF_time_once($hash,8,$wday,"8") and ::DOIF_time_once($hash,9,$wday,"8")
5 ::DOIF_time_once($hash,10,$wday,"8") and ::DOIF_time_once($hash,11,$wday,"8")
days:
0 8
1 8
10 8
11 8
2 8
3 8
4 8
5 8
6 8
7 8
8 8
9 8
do:
0:
0 setreading workingtime a_working true
1:
0 setreading workingtime b_working true
2:
0 setreading workingtime a_working false
3:
0 setreading workingtime b_working false
4:
0 setreading workingtime a_working true
1 setreading workingtime b_working true
5:
0 setreading workingtime a_working false
1 setreading workingtime b_working false
6:
helper:
NOTIFYDEV workingtime,global
globalinit 1
last_timer 12
sleeptimer -1
intervalfunc:
localtime:
0 1676527200
1 1676527200
10 1676484000
11 1676484000
2 1676527200
3 1676527200
4 1676484000
5 1676484000
6 1676484000
7 1676484000
8 1676527200
9 1676527200
realtime:
0 07:00:00
1 07:00:00
10 19:00:00
11 19:00:00
2 07:00:00
3 07:00:00
4 19:00:00
5 19:00:00
6 19:00:00
7 19:00:00
8 07:00:00
9 07:00:00
time:
0 [workingtime:Group_A_start]
1 [workingtime:Group_B_start]
10 [workingtime:Group_A_End]
11 [workingtime:Group_B_End]
2 [workingtime:Group_B_start]
3 [workingtime:Group_A_start]
4 [workingtime:Group_A_End]
5 [workingtime:Group_B_End]
6 [workingtime:Group_B_End]
7 [workingtime:Group_A_End]
8 [workingtime:Group_A_start]
9 [workingtime:Group_B_start]
timeCond:
0 0
1 0
10 5
11 5
2 1
3 1
4 2
5 2
6 3
7 3
8 4
9 4
timer:
0 0
1 0
10 0
11 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
timers:
0 0 1
1 2 3
2 4 5
3 6 7
4 8 9
5 10 11
triggertime:
1676484000:
localtime 1676484000
hash:
1676527200:
localtime 1676527200
hash:
uiState:
uiTable:
Attributes:
readingList Group_A_start Group_A_End Group_B_start Group_B_End
room 4R0BA1_Einstellungen
setList Group_A_start:time Group_A_End:time Group_B_start:time Group_B_End:time
stateFormat group_a_atwork / group_b_atwork
webCmd Group_A_start:Group_A_End:Group_B_start:Group_B_End
webCmdLabel Group_A_start:Group_A_End
:Group_B_start:Group_B_End
DOIF (B) fragt, ob das reading DOIF(A):arbeitszeit eq "false" ist.
Die Abfrage mündet aber im Fehler error: Wrong timespec true: either HH:MM:SS or {perlcode}
(
[?$SELF:usage] eq "Group_A"
and [[workingtime:a_working] eq "false" or [$SELF:muteduringwork] eq "door" or [$SELF:muteduringwork] eq "off"] ## Wahrheitstabelle
and [Sensor01:Tcal] > [?$SELF:Desired_°C] + [?$SELF:Hysterisis_°C]/2
and [$SELF:muted] eq "off"
and [$SELF:alarmsetting] ne "humidity"
)
(setreading $SELF T high)
Edit: wie dumm kann man denn sein? Ich habe eckige statt runde Klammern verwendet!