Hallo,
ich habe ein DOIF mit 2 Bewegungsmeldern. Löst man nur einen der Beiden aus, funktioniert alles. Löse ich beide nacheinander aus, wird das Licht nach 90 sec. erneut für 20 sec. eingeschaltet. Die Bewegungsmelder ändern nach 90 sec. ihren Status von motion auf nomotion.
Wie kann ich das verhindern?
Bewegungsmelder 1
DEF sensor 18 1 IODev=deCONZ
FUUID 5cb75a20-f33f-cd72-4caa-4c7497c282206271
FVERSION 31_HUEDevice.pm:0.192010/2019-04-16
ID S18
INTERVAL 1
IODev deCONZ
NAME BM_Flur_OG2_Motion
NR 334
STATE nomotion
TYPE HUEDevice
lastupdated 2019-04-28 07:54:11
lastupdated_local 2019-04-28 09:54:11
manufacturername LUMI
modelid lumi.sensor_motion.aq2
name BM_Flur_OG2
on 1
reachable 1
swversion 20170627
type ZHAPresence
uniqueid 00:15:8d:00:03:02:1a:d8-01-0406
READINGS:
2019-04-28 09:40:13 battery 100
2019-04-28 09:40:13 reachable 1
2019-04-28 09:54:11 state nomotion
2019-04-28 09:40:13 temperature 23
helper:
devtype S
reachable 0
update_timeout 1
setList:
Attributes:
HomeModeAlarmActive armaway
HomeSensorLocation inside
IODev deCONZ
group motionDetector
room HUEDevice
userattr HomeModeAlarmActive HomeReadings HomeValues HomeSensorLocation:inside,outside
Bewegungsmelder 2
DEF sensor 7 1 IODev=deCONZ
FUUID 5c9bd34e-f33f-cd72-68f2-094c6d76b8353c5d
FVERSION 31_HUEDevice.pm:0.192010/2019-04-16
ID S7
INTERVAL 1
IODev deCONZ
NAME BM_Flur_OG
NR 321
STATE nomotion
TYPE HUEDevice
lastupdated 2019-04-28 07:54:22
lastupdated_local 2019-04-28 09:54:22
manufacturername LUMI
modelid lumi.sensor_motion
name BM_Flur_OG
on 1
reachable 1
swversion 20160524
type ZHAPresence
uniqueid 00:15:8d:00:02:f0:42:bf-01-0406
READINGS:
2019-04-28 09:08:44 battery 100
2019-04-28 09:08:44 reachable 1
2019-04-28 09:54:22 state nomotion
2019-04-28 09:08:44 temperature 0
helper:
devtype S
reachable 0
update_timeout 1
setList:
Attributes:
HomeModeAlarmActive armaway
HomeSensorLocation inside
IODev deCONZ
group motionDetector
room HUEDevice
userattr HomeModeAlarmActive HomeReadings HomeValues HomeSensorLocation:inside,outside
DOIF
DEF (([BM_Flur_OG:state] eq "motion" or [BM_Flur_OG2_Motion:state] eq "motion") and [?BM_Flur_OG2_Light:lux] < 40) (set Licht_Flur_OG on)(set Licht_Flur_OG off)
FUUID 5cb774c1-f33f-cd72-580c-c2a26c89f23aedda
FVERSION 98_DOIF.pm:0.188900/2019-03-13
MODEL FHEM
NAME di_FlurlichtOG
NR 336
NTFY_ORDER 50-di_FlurlichtOG
STATE cmd_1
TYPE DOIF
VERSION 18890 2019-03-13 18:56:41
READINGS:
2019-04-28 09:54:22 Device BM_Flur_OG
2019-04-28 09:54:31 cmd 1.2
2019-04-28 09:54:31 cmd_event BM_Flur_OG2_Motion
2019-04-28 09:54:31 cmd_nr 1
2019-04-28 09:54:31 cmd_seqnr 2
2019-04-28 09:54:11 e_BM_Flur_OG2_Motion_state nomotion
2019-04-28 09:54:22 e_BM_Flur_OG_state nomotion
2019-04-28 09:33:12 mode enabled
2019-04-28 09:54:31 state cmd_1
2019-04-28 09:54:31 wait_timer no timer
Regex:
accu:
attr:
cmdState:
wait:
0:
0
20
waitdel:
condition:
0 (::ReadingValDoIf($hash,'BM_Flur_OG','state') eq "motion" or ::ReadingValDoIf($hash,'BM_Flur_OG2_Motion','state') eq "motion") and ::ReadingValDoIf($hash,'BM_Flur_OG2_Light','lux') < 40
devices:
0 BM_Flur_OG BM_Flur_OG2_Motion
all BM_Flur_OG BM_Flur_OG2_Motion
do:
0:
0 set Licht_Flur_OG on
1 set Licht_Flur_OG off
1:
helper:
event nomotion
globalinit 1
last_timer 0
sleepdevice BM_Flur_OG2_Motion
sleepsubtimer -1
sleeptimer -1
timerdev BM_Flur_OG2_Motion
timerevent nomotion
triggerDev BM_Flur_OG2_Motion
DOIF_eventas:
cmd_nr: 1
cmd_seqnr: 2
cmd_event: BM_Flur_OG2_Motion
state: cmd_1
timerevents:
nomotion
timereventsState:
state: nomotion
triggerEvents:
nomotion
triggerEventsState:
state: nomotion
internals:
itimer:
readings:
0 BM_Flur_OG:state BM_Flur_OG2_Motion:state
all BM_Flur_OG:state BM_Flur_OG2_Motion:state
trigger:
uiState:
uiTable:
Attributes:
do resetwait
wait 0,20
Danke für Hilfe und VG
Dieter
Es ist besser mit Events an dieser Stelle zu arbeiten:
(([BM_Flur_OG:"motion"] or [BM_Flur_OG2_Motion:"motion"]) and [?BM_Flur_OG2_Light:lux] < 40) (set Licht_Flur_OG on)(set Licht_Flur_OG off)
Danke für deine Hilfe.
Leider gleicher Effekt.
Oder muss ich an den Attributen noch was ändern?
Zitat von: dk3572 am 28 April 2019, 11:34:59
Danke für deine Hilfe.
Leider gleicher Effekt.
Oder muss ich an den Attributen noch was ändern?
OK. Ich sehe gerade, dass "nomotion" auch kommt, deswegen muss man die Regex-Angabe genauer spezifizieren:
(([BM_Flur_OG:"^motion"] or [BM_Flur_OG2_Motion:"^motion"]) and [?BM_Flur_OG2_Light:lux] < 40) (set Licht_Flur_OG on)(set Licht_Flur_OG off)
Zitat von: Damian am 28 April 2019, 11:43:02
OK. Ich sehe gerade, dass "nomotion" auch kommt, deswegen muss man die Regex-Angabe genauer spezifizieren:
(([BM_Flur_OG:"^motion"] or [BM_Flur_OG2_Motion:"^motion"]) and [?BM_Flur_OG2_Light:lux] < 40) (set Licht_Flur_OG on)(set Licht_Flur_OG off)
Ganz vergessen, danke für die ausführliche Hilfe, es funktioniert.
Auch wenn ich nicht verstehe warum es ohne "^" auch auf nomotion reagiert hat.
VG Dieter
Zitat von: dk3572 am 29 April 2019, 17:33:09
Ganz vergessen, danke für die ausführliche Hilfe, es funktioniert.
Auch wenn ich nicht verstehe warum es ohne "^" auch auf nomotion reagiert hat.
VG Dieter
weil "^" bedeutet , das der folgende ausdruck "motion" am anfang stehen muss ( es darf nichts davor stehen ) . da "nomotion" natürlich auch "motion" enthält erkennt er dieses ansonsten auch .
http://kirste.userpage.fu-berlin.de/chemnet/use/suppl/perl-regex.html (http://kirste.userpage.fu-berlin.de/chemnet/use/suppl/perl-regex.html)
gruss Byte09
*ankopfklatsch
Das war wohl zu einfach um selbst drauf zu kommen ;D
Danke für die Erklärung.