Hallo Damian,
hallo Forumsmitglieder,
folgendes DOIF macht im 4. Zweig Probleme:
defmod HeizungResistWarmwasser DOIF ([21:30]) (set HeizungResist Warmwasser 0) \
DOELSEIF (([06:30|8] or [07:15|7]) and [?Anwesenheit.dum:state] eq "on") (set HeizungResist Warmwasser 1) \
DOELSEIF ([Anwesenheit.dum:state] eq "off") (set HeizungResist Warmwasser 0) \
DOELSEIF (([06:31|8-21:29] or [07:16|7-21:29]) and [Anwesenheit.dum:state] eq "on") (set HeizungResist Warmwasser 1)
attr HeizungResistWarmwasser do always
attr HeizungResistWarmwasser icon sani_heating_timer
attr HeizungResistWarmwasser room Heizung
Der 4. Zweig schaltet nicht, wenn ein Event von Anwesenheit.dum:state von off nach on wechselt. Es muss mit der Zeitsteuerung <([06:31|8-21:29] or [07:16|7-21:29])> tun zu haben, aber es müsste laut commandref eigentlich richtig sein. Ist die Klammersetzung richtig? Sind 2 Wochentagssteuerungen in einem Zweig ein Problem?
Hier noch ein list des Devices:
Internals:
CFGFN ./FHEM/HeizungWarmwasser.cfg
DEF ([21:30]) (set HeizungResist Warmwasser 0)
DOELSEIF (([06:30|8] or [07:15|7]) and [?Anwesenheit.dum:state] eq "on") (set HeizungResist Warmwasser 1)
DOELSEIF ([Anwesenheit.dum:state] eq "off") (set HeizungResist Warmwasser 0)
DOELSEIF (([06:31|8-21:29] or [07:16|7-21:29]) and [Anwesenheit.dum:state] eq "on") (set HeizungResist Warmwasser 1)
FUUID 5deba9aa-f33f-e986-d2f4-4f0562593ba95ca8
MODEL FHEM
NAME HeizungResistWarmwasser
NOTIFYDEV global,Anwesenheit.dum
NR 812
NTFY_ORDER 50-HeizungResistWarmwasser
STATE cmd_3
TYPE DOIF
VERSION 21224 2020-02-18 18:45:49
READINGS:
2020-03-05 07:43:49 Device Anwesenheit.dum
2020-03-05 07:29:16 cmd 3
2020-03-05 07:29:16 cmd_event Anwesenheit.dum
2020-03-05 07:29:16 cmd_nr 3
2020-03-05 07:43:49 e_Anwesenheit.dum_state on
2020-03-05 07:28:31 mode enabled
2020-03-05 07:29:16 state cmd_3
2020-03-05 07:28:32 timer_01_c01 05.03.2020 21:30:00
2020-03-05 07:28:32 timer_02_c02 06.03.2020 06:30:00|8
2020-03-05 07:28:32 timer_03_c02 06.03.2020 07:15:00|7
2020-03-05 07:28:32 timer_04_c04 06.03.2020 06:31:00|8-21:29
2020-03-05 07:28:32 timer_05_c04 06.03.2020 07:16:00|7-21:29
Regex:
accu:
cond:
Anwesenheit.dum:
0:
1:
2:
state ^Anwesenheit.dum$:^state:
3:
state ^Anwesenheit.dum$:^state:
attr:
cmdState:
wait:
waitdel:
condition:
0 ::DOIF_time_once($hash,0,$wday)
1 (::DOIF_time_once($hash,1,$wday,"8") or ::DOIF_time_once($hash,2,$wday,"7")) and ::ReadingValDoIf($hash,'Anwesenheit.dum','state') eq "on"
2 ::ReadingValDoIf($hash,'Anwesenheit.dum','state') eq "off"
3 (::DOIF_time_once($hash,3,$wday,"8-21:29") or ::DOIF_time_once($hash,4,$wday,"7-21:29")) and ::ReadingValDoIf($hash,'Anwesenheit.dum','state') eq "on"
days:
1 8
2 7
3 8-21:29
4 7-21:29
do:
0:
0 set HeizungResist Warmwasser 0
1:
0 set HeizungResist Warmwasser 1
2:
0 set HeizungResist Warmwasser 0
3:
0 set HeizungResist Warmwasser 1
4:
helper:
DEVFILTER ^global$|^Anwesenheit.dum$
NOTIFYDEV global|Anwesenheit.dum
event 1
globalinit 1
last_timer 5
sleeptimer -1
timerdev Anwesenheit.dum
timerevent 0
triggerDev Anwesenheit.dum
bm:
DOIF_Attr:
cnt 1
dmx -1000
dtot 0
dtotcnt 0
mTS 05.03. 07:35:08
max 0.00224614143371582
tot 0.00224614143371582
mAr:
del
HeizungResistWarmwasser
verbose
DOIF_Get:
cnt 3
dmx -1000
dtot 0
dtotcnt 0
mTS 05.03. 07:34:59
max 2.19345092773438e-05
tot 6.38961791992188e-05
mAr:
HASH(0x55c593b7a650)
HeizungResistWarmwasser
?
DOIF_Notify:
cnt 14
dmx -1000
dtot 0
dtotcnt 0
mTS 05.03. 07:29:16
max 0.0800509452819824
tot 0.10346794128418
mAr:
HASH(0x55c593b7a650)
HASH(0x55c593646148)
DOIF_Set:
cnt 20
dmx -1000
dtot 0
dtotcnt 0
mTS 05.03. 07:29:16
max 0.000100851058959961
tot 0.00138998031616211
mAr:
HASH(0x55c593b7a650)
HeizungResistWarmwasser
?
timerevents:
0
timereventsState:
state: off
triggerEvents:
1
triggerEventsState:
state: on
internals:
intervalfunc:
localtime:
0 1583440200
1 1583472600
2 1583475300
3 1583472660
4 1583475360
readings:
all Anwesenheit.dum:state
realtime:
0 21:30:00
1 06:30:00
2 07:15:00
3 06:31:00
4 07:16:00
time:
0 21:30:00
1 06:30:00
2 07:15:00
3 06:31:00
4 07:16:00
timeCond:
0 0
1 1
2 1
3 3
4 3
timer:
0 0
1 0
2 0
3 0
4 0
timers:
0 0
1 1 2
3 3 4
trigger:
triggertime:
1583440200:
localtime 1583440200
hash:
1583472600:
localtime 1583472600
hash:
1583472660:
localtime 1583472660
hash:
1583475300:
localtime 1583475300
hash:
1583475360:
localtime 1583475360
hash:
uiState:
uiTable:
Attributes:
devStateIcon (cmd_1|cmd_3):weather_night@red (cmd_2|cmd_4):scene_day@gray
do always
icon sani_heating_timer
room Heizung
Viele Grüße Gisbert
Sollten die Zeitintervalle mit Wochentag nicht die Form
[VON-BIS|WOCHENTAG]
statt
[VON|WOCHENTAG-BIS]
haben?
Zitat von: xenos1984 am 05 März 2020, 09:42:34
Sollten die Zeitintervalle mit Wochentag nicht die Form
[VON-BIS|WOCHENTAG]
statt
[VON|WOCHENTAG-BIS]
haben?
Wochentag immer am Ende ;)
Zitat von: Damian am 05 März 2020, 09:50:26
Wochentag immer am Ende ;)
Schon macht man's richtig, funktioniert es auch ;D
Den Sinn der Regel kann ich sogar gut nachvollziehen; ich war nur durch den zweiten Zweig, bei dem auch eine Wochentagsteuerung eingesetzt wird, auf der falschen Fährte.
Vielen Dank
Gisbert