Moin,
ich nutze seid knapp über 1 Jahr folgendes DOIF, was bis vor ein paar Tagen ohne Probleme funktioniert hat:
(([HUESensor20] eq "motion" and [doif_EG_Beleuchtung] eq "cmd_2" and [22:10-05:50] and [?Wetterstation01:Lux] < 70))
(set HUEDevice2 on)
DOELSE
(set HUEDevice2 off)
Das DOIF soll nur schalten, wenn [doif_EG_Beleuchtung] eq "cmd_2" ist und [HUESensor20] eq "motion".
Die erste Bedingung funktioniert auch, aber seid neusten triggert er immer den [HUESensor20] (Bewegungsmelder) und schaltet HUEDevice2 aus, obwohl [doif_EG_Beleuchtung] eq "cmd_1" ist.
Das macht er aber erst seit ein paar Tagen, vorher hat er das nicht gemacht.
Entweder ich habe bisher Glück gehabt, oder bei einem der letzten Updates gab es irgendwo eine Änderung in FHEM.
Ich könnte den DOELSE Zweig erweitern aber mich interessiert, warum es auf einmal nicht mehr funktioniert.
List:
Internals:
DEF (([HUESensor20] eq "motion" and [doif_EG_Beleuchtung] eq "cmd_2" and [22:10-05:50] and [?Wetterstation01:Lux] < 70))
(set HUEDevice2 on)
DOELSE
(set HUEDevice2 off)
FUUID 5d0be1bf-f33f-ae29-d51e-2bb97509a4c8d33d
MODEL FHEM
NAME doif_Bewegungsmelder_Flur_Licht
NOTIFYDEV doif_EG_Beleuchtung,HUESensor20,global
NR 162
NTFY_ORDER 50-doif_Bewegungsmelder_Flur_Licht
STATE cmd_2
TYPE DOIF
VERSION 24905 2021-09-01 18:35:54
READINGS:
2021-11-10 17:46:32 Device HUESensor20
2021-11-10 17:39:43 cmd 2
2021-11-10 17:39:43 cmd_event HUESensor20
2021-11-10 17:39:43 cmd_nr 2
2021-11-10 17:46:32 e_HUESensor20_STATE nomotion
2021-11-10 17:29:11 mode enabled
2021-11-10 17:39:43 state cmd_2
2021-11-10 17:29:11 timer_01_c01 10.11.2021 22:10:00
2021-11-10 17:29:11 timer_02_c01 11.11.2021 05:50:00
2021-11-10 17:46:32 wait_timer 10.11.2021 17:48:42 cmd_2 HUESensor20
Regex:
accu:
collect:
cond:
HUESensor20:
0:
&STATE ^HUESensor20$
doif_EG_Beleuchtung:
0:
&STATE ^doif_EG_Beleuchtung$
attr:
cmdState:
wait:
0:
0
1:
130
waitdel:
condition:
0 (::InternalDoIf($hash,'HUESensor20','STATE') eq "motion" and ::InternalDoIf($hash,'doif_EG_Beleuchtung','STATE') eq "cmd_2" and ::DOIF_time($hash,0,1,$wday,$hms) and ::ReadingValDoIf($hash,'Wetterstation01','Lux') < 70)
days:
do:
0:
0 set HUEDevice2 on
1:
0 set HUEDevice2 off
helper:
DEVFILTER ^global$|^HUESensor20$|^doif_EG_Beleuchtung$
NOTIFYDEV global|HUESensor20|doif_EG_Beleuchtung
event nomotion
globalinit 1
last_timer 2
sleepdevice HUESensor20
sleepsubtimer 0
sleeptimer 1
timerdev HUESensor20
timerevent nomotion
triggerDev HUESensor20
timerevents:
nomotion
timereventsState:
state: nomotion
triggerEvents:
nomotion
triggerEventsState:
state: nomotion
internals:
all HUESensor20:STATE doif_EG_Beleuchtung:STATE
interval:
0 -1
1 0
intervalfunc:
localtime:
0 1636578600
1 1636606200
readings:
realtime:
0 22:10:00
1 05:50:00
time:
0 22:10:00
1 05:50:00
timeCond:
0 0
1 0
timer:
0 0
1 0
timers:
0 0 1
trigger:
triggertime:
1636578600:
localtime 1636578600
hash:
1636606200:
localtime 1636606200
hash:
uiState:
uiTable:
Attributes:
DbLogExclude .*
do resetwait
room Zeitschaltuhren
verbose 5
wait 0:130
An dieser Stelle hat sich im DOIF im letzten Jahr nichts geändert.
Ich würde dennoch die Triggerung nur auf den Status eingrenzen:
[HUESensor20:state] eq "motion"
Ggf. kommt von HM neuerdings unmotiviert ein "nomotion"-Trigger, den es früher nicht gab.
Hm ok, ist aber kein Hue Sensor sondern ein Xiaomi Bewegungsmelder. Aber stimmt, Deconz hatte ich auch ein Update gemacht.