Hallo,
ich habe mal eine Frage: Folgendes DOIF steht auf cmd4 und ich weiß nicht wieso.
Meiner Meinung nach müsste es auf auf Grund folgender Readings
2020-11-06 10:51:45 e_HUEDevice18_Status 0
2020-11-06 10:50:45 e_HUEDevice1_Status 1
2020-11-06 03:10:10 e_VUDuo2_STATE absent
auf cmd2 stehen.
Internals:
DEF (([VUDuo2] eq "on") and [HUEDevice18:Status] eq "1") (set HUEDevice18 off)
DOELSEIF (([VUDuo2] eq "off" or [VUDuo2] eq "absent") and [HUEDevice1:Status] eq "1") (set HUEDevice18 on)
DOELSEIF ([HUEDevice1:Status] eq "0") (set HUEDevice18 off)
DOELSE (set HUEDevice18 off)
FUUID 5ddabac7-f33f-8efe-b405-25967a8a4a68e1e4
MODEL FHEM
NAME nFollow2DOIF
NOTIFYDEV HUEDevice18,VUDuo2,HUEDevice1,global
NR 2678
NTFY_ORDER 50-nFollow2DOIF
STATE cmd_4
TYPE DOIF
VERSION 22735 2020-09-05 11:05:46
READINGS:
2020-11-06 10:51:45 Device HUEDevice18
2020-11-06 10:51:45 cmd 4
2020-11-06 10:51:45 cmd_event HUEDevice18
2020-11-06 10:51:45 cmd_nr 4
2020-11-06 10:51:45 e_HUEDevice18_Status 0
2020-11-06 10:50:45 e_HUEDevice1_Status 1
2020-11-06 03:10:10 e_VUDuo2_STATE absent
2020-09-11 21:40:38 mode enabled
2020-11-06 10:51:45 state cmd_4
2020-11-06 10:51:45 wait_timer no timer
Regex:
accu:
cond:
HUEDevice1:
0:
1:
Status ^HUEDevice1$:^Status:
2:
Status ^HUEDevice1$:^Status:
HUEDevice18:
0:
Status ^HUEDevice18$:^Status:
1:
2:
VUDuo2:
0:
&STATE ^VUDuo2$
1:
&STATE ^VUDuo2$
2:
attr:
cmdState:
wait:
0:
0
1:
30
2:
30
3:
30
waitdel:
condition:
0 (::InternalDoIf($hash,'VUDuo2','STATE') eq "on") and ::ReadingValDoIf($hash,'HUEDevice18','Status') eq "1"
1 (::InternalDoIf($hash,'VUDuo2','STATE') eq "off" or ::InternalDoIf($hash,'VUDuo2','STATE') eq "absent") and ::ReadingValDoIf($hash,'HUEDevice1','Status') eq "1"
2 ::ReadingValDoIf($hash,'HUEDevice1','Status') eq "0"
do:
0:
0 set HUEDevice18 off
1:
0 set HUEDevice18 on
2:
0 set HUEDevice18 off
3:
0 set HUEDevice18 off
helper:
DEVFILTER ^global$|^HUEDevice1$|^HUEDevice18$|^VUDuo2$
NOTIFYDEV global|HUEDevice1|HUEDevice18|VUDuo2
event onoff: 0,pct: 0,off,Status: 0
globalinit 1
last_timer 0
sleepdevice HUEDevice18
sleepsubtimer -1
sleeptimer -1
timerdev HUEDevice18
timerevent onoff: 0,pct: 0,off,Status: 0
triggerDev HUEDevice18
timerevents:
onoff: 0
pct: 0
off
Status: 0
timereventsState:
onoff: 0
pct: 0
state: off
Status: 0
triggerEvents:
onoff: 0
pct: 0
off
Status: 0
triggerEventsState:
onoff: 0
pct: 0
state: off
Status: 0
internals:
all VUDuo2:STATE
perlblock:
readings:
all HUEDevice18:Status HUEDevice1:Status
trigger:
uiState:
uiTable:
Attributes:
startup checkall
wait 0:30:30:30
Ich bin sicher, dass der Fehler bei mir liegt, aber ich finde ihn nicht.
Wer kann mich erhellen?
Um 10:51:45 Uhr wurde HUEDevice18_Status auf 0 gesetzt. Dabei wurde nur Bedingung 1 überprüft, und das DOIF ist auf cmd4 (DOELSE) gelandet.
Seitdem ist nichts mehr passiert.
Zitat von: CommandRefZu beachten ist, dass nur die Bedingungen überprüft werden, die zum ausgelösten Event das dazughörige Device bzw. die dazugehörige Triggerzeit beinhalten.
Wenn Du willst, das bei allen Trigger im DOIF immer alle Bedingungen geprüft werden, musst Du checkall setzen
https://fhem.de/commandref_DE.html#DOIF_checkall
Zitat von: amenomade am 06 November 2020, 18:00:37
Wenn Du willst, das bei allen Trigger im DOIF immer alle Bedingungen geprüft werden, musst Du checkall setzen
https://fhem.de/commandref_DE.html#DOIF_checkall
Vielen Dank,
dass war der entscheidende Tipp.
Das mit dem checkall muss ich mir noch mal genauer ansehen. Ich habe es scheinbar noch nicht ganz verstanden.