Moin,
ich bräuchte mal ein Hilfe bei einem DOIF:
Zur Zeit habe ich im Garten ein paar Gartenstrahler mit innr GU10 und Osram Gartenpoles.
Die Strahler werden zur Zeit über Bewegungsmelder angeschaltet und die Gartenpoles über ein Helligkeitssensor.
Meine Idee ist jetzt, über den Helligkeitssensor alle Lampen im Garten gedimmt einzuschalten und wenn Bewegung erkannt wird, die Lampen auf voller Helligkeit anzuschalten und wenn keine Bewegung mehr erkannt wird, wieder auf den Ursprünglichen Zustand zu schalten.
Dazu habe ich mir folgendes DOIF erstellt:
(([5:50-7:30] or [16:00-22:10] and [MultiSensor_Einfahrt:brightness] < 40) and ([Bewegungsmelder_Hexen:"nomotion"] or [Bewegungsmelder_Schleppdach:"nomotion"]))
(set HUEDevice9 pct 10)
DOELSEIF
([MultiSensor_Einfahrt:brightness] < 40 and ([Bewegungsmelder_Hexen:"motion"] or [Bewegungsmelder_Schleppdach:"motion"]))
(set HUEDevice9 pct 100)
DOELSE
(set HUEDevice9 off)
Das List dazu:
Internals:
DEF (([5:50-7:30] or [16:00-22:10] and [MultiSensor_Einfahrt:brightness] < 40) and ([Bewegungsmelder_Hexen:"nomotion"] or [Bewegungsmelder_Schleppdach:"nomotion"]))
(set HUEDevice9 pct 10)
DOELSEIF
([MultiSensor_Einfahrt:brightness] < 40 and ([Bewegungsmelder_Hexen:"motion"] or [Bewegungsmelder_Schleppdach:"motion"]))
(set HUEDevice9 pct 100)
DOELSE
(set HUEDevice9 off)
FUUID 5d484da7-f33f-ae29-81bf-44385bb53101ea42
MODEL FHEM
NAME doif_Garten_Gardenpole
NR 231
NTFY_ORDER 50-doif_Garten_Gardenpole
STATE cmd_3
TYPE DOIF
VERSION 19786 2019-07-05 21:47:08
READINGS:
2019-08-12 20:57:44 Device MultiSensor_Einfahrt
2019-08-12 16:25:23 cmd 3
2019-08-12 16:25:23 cmd_event doif_Garten_Gardenpole
2019-08-12 16:25:23 cmd_nr 3
2019-08-12 20:52:43 e_Bewegungsmelder_Hexen_events temperature: 21
2019-08-12 20:49:57 e_Bewegungsmelder_Schleppdach_events nomotion
2019-08-12 20:57:44 e_MultiSensor_Einfahrt_brightness 28.98
2019-08-12 16:25:20 mode enabled
2019-08-12 16:25:23 state cmd_3
2019-08-12 18:30:59 timer_01_c01 13.08.2019 05:50:00
2019-08-12 18:30:59 timer_02_c01 13.08.2019 07:30:00
2019-08-12 18:30:59 timer_03_c01 13.08.2019 16:00:00
2019-08-12 18:30:59 timer_04_c01 12.08.2019 22:10:00
Regex:
accu:
attr:
waitdel:
condition:
0 (::DOIF_time($hash,0,1,$wday,$hms) or ::DOIF_time($hash,2,3,$wday,$hms) and ::ReadingValDoIf($hash,'MultiSensor_Einfahrt','brightness') < 40) and (::EventDoIf('Bewegungsmelder_Hexen',$hash,'nomotion',1) or ::EventDoIf('Bewegungsmelder_Schleppdach',$hash,'nomotion',1))
1 ::ReadingValDoIf($hash,'MultiSensor_Einfahrt','brightness') < 40 and (::EventDoIf('Bewegungsmelder_Hexen',$hash,'motion',1) or ::EventDoIf('Bewegungsmelder_Schleppdach',$hash,'motion',1))
days:
devices:
0 MultiSensor_Einfahrt Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
1 MultiSensor_Einfahrt Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
all MultiSensor_Einfahrt Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
do:
0:
0 set HUEDevice9 pct 10
1:
0 set HUEDevice9 pct 100
2:
0 set HUEDevice9 off
helper:
event batVoltage: 3.18,battery: ok,brightness: 28.98,customData: 0,digitalInput: 0,humidity: 41,pressure: 1014.4,T: 20.3 P: 1014.4 H: 41 B: 28.98 I: 0 X: 0,temperature: 20.3
globalinit 1
last_timer 4
sleeptimer -1
timerdev MultiSensor_Einfahrt
timerevent batVoltage: 3.18,battery: ok,brightness: 28.98,customData: 0,digitalInput: 0,humidity: 41,pressure: 1014.4,T: 20.3 P: 1014.4 H: 41 B: 28.98 I: 0 X: 0,temperature: 20.3
triggerDev MultiSensor_Einfahrt
timerevents:
batVoltage: 3.18
battery: ok
brightness: 28.98
customData: 0
digitalInput: 0
humidity: 41
pressure: 1014.4
T: 20.3 P: 1014.4 H: 41 B: 28.98 I: 0 X: 0
temperature: 20.3
timereventsState:
batVoltage: 3.18
battery: ok
brightness: 28.98
customData: 0
digitalInput: 0
humidity: 41
pressure: 1014.4
state: T: 20.3 P: 1014.4 H: 41 B: 28.98 I: 0 X: 0
temperature: 20.3
triggerEvents:
batVoltage: 3.18
battery: ok
brightness: 28.98
customData: 0
digitalInput: 0
humidity: 41
pressure: 1014.4
T: 20.3 P: 1014.4 H: 41 B: 28.98 I: 0 X: 0
temperature: 20.3
triggerEventsState:
batVoltage: 3.18
battery: ok
brightness: 28.98
customData: 0
digitalInput: 0
humidity: 41
pressure: 1014.4
state: T: 20.3 P: 1014.4 H: 41 B: 28.98 I: 0 X: 0
temperature: 20.3
internals:
interval:
0 -1
1 0
2 -1
3 2
intervalfunc:
itimer:
localtime:
0 1565668200
1 1565674200
2 1565704800
3 1565640600
perlblock:
readings:
0 MultiSensor_Einfahrt:brightness
1 MultiSensor_Einfahrt:brightness
all MultiSensor_Einfahrt:brightness
realtime:
0 05:50:00
1 07:30:00
2 16:00:00
3 22:10:00
time:
0 5:50
1 7:30
2 16:00:00
3 22:10:00
timeCond:
0 0
1 0
2 0
3 0
timer:
0 0
1 0
2 0
3 0
timers:
0 0 1 2 3
trigger:
all Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
triggertime:
1565640600:
localtime 1565640600
hash:
1565668200:
localtime 1565668200
hash:
1565674200:
localtime 1565674200
hash:
1565704800:
localtime 1565704800
hash:
uiState:
uiTable:
Attributes:
DbLogExclude .*
icon icoUhr
room Zeitschaltuhren
Es ist jetzt kurz nach 21 Uhr, der Helligkeitssensor meldet knappe 28 LUX und die Bewegungsmelder stehen auf nomotion. Das Doif befindet sich aber in cmd_3.
Ich kann meinen Fehler leider nicht finden, vielleicht kann mir ja jemand auf die Sprünge helfen.
Danke
Hi,
Du musst auf alle Fälle das erste or noch klammern.
Gruß Otto
Du kombinierst Status und Ereignissteuerung => Konkret wird dein DOIF hier nur durch Ereignisse "nomotion" von den Bewegungsmelder getriggert
Um 16:25 hat er cmd_3 geschaltet.
Um 20:49 hat Bewegungsmelder_Hexen "nomotion" gemeldet. Wie war damals MultiSensor_Einfahrt:brightness ? Wahrscheinlich noch über 40
28.98 kommt auf jeden Fall erst danach
Zitat von: Otto123 am 12 August 2019, 21:20:29
Hi,
Du musst auf alle Fälle das erste or noch klammern.
Gruß Otto
Naja... das habe ich auch am Anfang gedacht. Aber vielleicht will er das es morgens "auf jeden Fall" schaltet, und abends "nur" wenn die Helligkeit gering ist
Zitat von: amenomade am 12 August 2019, 21:26:12
Naja... das habe ich auch am Anfang gedacht. Aber vielleicht will er das es morgens "auf jeden Fall" schaltet, und abends "nur" wenn die Helligkeit gering ist
Nein beides nur wenn die Helligkeit unter 40 Lux ist.
Zitat von: amenomade am 12 August 2019, 21:26:12
Naja... das habe ich auch am Anfang gedacht. Aber vielleicht will er das es morgens "auf jeden Fall" schaltet, und abends "nur" wenn die Helligkeit gering ist
Ja kann auch sein :) ich denke mit Deiner Anmerkung über die Ereignissteuerung liegst Du richtig. Damit spielt die Helligkeit keine triggernde Rolle mehr :)
Zitat von: Starsurfer am 12 August 2019, 21:40:20
Nein beides nur wenn die Helligkeit unter 40 Lux ist.
Dann musst Du, wie Otto geschrieben hat, noch mehr klammern. And bindet mehr als or. Ändert aber nichts an der Tatsache, dass dein DOIF eventgetriggert ist
Und Umbau auf die Form [Bewegungsmelder_Hexen] eq "motion"
Zitat von: Otto123 am 12 August 2019, 21:42:48
Und Umbau auf die Form [Bewegungsmelder_Hexen] eq "motion"
oder ggf "nomotion".
Zur Erklärung, nehmen wir mal folgendes DOIF:
([du:"^on$"]) (set du4 on) DOELSE (set du4 off)
Ein Ereignis "on" auf Device "du" wird du4 auf on schalten
ABER alle andere Ereignisse auf "du" werden du4 wieder auf off schalten
So habe es jetzt so umgebaut:
(([5:50-7:30] or [16:00-22:10]) and ([MultiSensor_Einfahrt:brightness] < 40) and ([Bewegungsmelder_Hexen] eq "nomotion" or [Bewegungsmelder_Schleppdach] eq "nomotion"))
(set HUEGroup2 pct 10,
set HUEDevice9 pct 10)
DOELSEIF
([MultiSensor_Einfahrt:brightness] < 40 and [Bewegungsmelder_Hexen] eq "motion" or [Bewegungsmelder_Schleppdach] eq "motion")
(set HUEGroup2 pct 100,
set HUEDevice9 pct 100)
DOELSE
(set HUEGroup2 off,
set HUEDevice9 off)
List:
Internals:
DEF (([5:50-7:30] or [16:00-22:10]) and ([MultiSensor_Einfahrt:brightness] < 40) and ([Bewegungsmelder_Hexen] eq "nomotion" or [Bewegungsmelder_Schleppdach] eq "nomotion"))
(set HUEGroup2 pct 10,
set HUEDevice9 pct 10)
DOELSEIF
([MultiSensor_Einfahrt:brightness] < 40 and [Bewegungsmelder_Hexen] eq "motion" or [Bewegungsmelder_Schleppdach] eq "motion")
(set HUEGroup2 pct 100,
set HUEDevice9 pct 100)
DOELSE
(set HUEGroup2 off,
set HUEDevice9 off)
FUUID 5d0be02c-f33f-ae29-77fc-0419a24f25ce354f
MODEL FHEM
NAME doif_Garten_Strahler
NR 194
NTFY_ORDER 50-doif_Garten_Strahler
STATE cmd_1
TYPE DOIF
VERSION 19786 2019-07-05 21:47:08
READINGS:
2019-08-12 21:46:11 cmd 1
2019-08-12 21:46:11 cmd_event doif_Garten_Strahler
2019-08-12 21:46:11 cmd_nr 1
2019-08-12 21:46:07 mode enabled
2019-08-12 21:46:11 state cmd_1
2019-08-12 21:46:07 timer_01_c01 13.08.2019 05:50:00
2019-08-12 21:46:07 timer_02_c01 13.08.2019 07:30:00
2019-08-12 21:46:07 timer_03_c01 13.08.2019 16:00:00
2019-08-12 21:46:07 timer_04_c01 12.08.2019 22:10:00
Regex:
accu:
attr:
cmdState:
wait:
0:
0
1:
130
waitdel:
condition:
0 (::DOIF_time($hash,0,1,$wday,$hms) or ::DOIF_time($hash,2,3,$wday,$hms)) and (::ReadingValDoIf($hash,'MultiSensor_Einfahrt','brightness') < 40) and (::InternalDoIf($hash,'Bewegungsmelder_Hexen','STATE') eq "nomotion" or ::InternalDoIf($hash,'Bewegungsmelder_Schleppdach','STATE') eq "nomotion")
1 ::ReadingValDoIf($hash,'MultiSensor_Einfahrt','brightness') < 40 and ::InternalDoIf($hash,'Bewegungsmelder_Hexen','STATE') eq "motion" or ::InternalDoIf($hash,'Bewegungsmelder_Schleppdach','STATE') eq "motion"
days:
devices:
0 MultiSensor_Einfahrt Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
1 MultiSensor_Einfahrt Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
all MultiSensor_Einfahrt Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
do:
0:
0 set HUEGroup2 pct 10, set HUEDevice9 pct 10
1:
0 set HUEGroup2 pct 100, set HUEDevice9 pct 100
2:
0 set HUEGroup2 off, set HUEDevice9 off
helper:
globalinit 1
last_timer 4
sleeptimer -1
timerdev
timerevent
timerevents
timereventsState
triggerDev
DOIF_eventas:
cmd_nr: 1
cmd: 1
cmd_event: doif_Garten_Strahler
state: cmd_1
internals:
0 Bewegungsmelder_Hexen:STATE Bewegungsmelder_Schleppdach:STATE
1 Bewegungsmelder_Hexen:STATE Bewegungsmelder_Schleppdach:STATE
all Bewegungsmelder_Hexen:STATE Bewegungsmelder_Schleppdach:STATE
interval:
0 -1
1 0
2 -1
3 2
intervalfunc:
itimer:
localtime:
0 1565668200
1 1565674200
2 1565704800
3 1565640600
readings:
0 MultiSensor_Einfahrt:brightness
1 MultiSensor_Einfahrt:brightness
all MultiSensor_Einfahrt:brightness
realtime:
0 05:50:00
1 07:30:00
2 16:00:00
3 22:10:00
time:
0 5:50
1 7:30
2 16:00:00
3 22:10:00
timeCond:
0 0
1 0
2 0
3 0
timer:
0 0
1 0
2 0
3 0
timers:
0 0 1 2 3
triggertime:
1565640600:
localtime 1565640600
hash:
1565668200:
localtime 1565668200
hash:
1565674200:
localtime 1565674200
hash:
1565704800:
localtime 1565704800
hash:
uiState:
uiTable:
Attributes:
DbLogExclude .*
do resetwait
icon icoUhr
room Zeitschaltuhren
wait 0:130
Zumindest ist er jetzt schon mal auf cmd_1 gesprungen. Muss gleich mal raus rennen und einen Bewegungsmelder aktivieren.
Schon mal besser, ja
Hoffe es regnet nicht ;)
Und ich hoffe auch, dass pct 100 nicht genug Licht bringt, dass MultiSensor_Einfahrt:brightness über 40 springt
Zitat von: amenomade am 12 August 2019, 21:51:18
Schon mal besser, ja
Hoffe es regnet nicht ;)
Und ich hoffe auch, dass pct 100 nicht genug Licht bringt, dass MultiSensor_Einfahrt:brightness über 40 springt
Nein regnet nicht :-)
Nein, der steht auf der anderen Seite vom Haus :o
Allerdings springt er bei motion nicht in cmd_2 >:(
list?
Ahja übrigens
([MultiSensor_Einfahrt:brightness] < 40 and [Bewegungsmelder_Hexen] eq "motion" or [Bewegungsmelder_Schleppdach] eq "motion")
Da hast Du wiederum ein Klammer Problem.
EDIT: vergiss nicht, dass damit er aus cmd_1 rauskommt, BEIDE Bewegungsmelder auf "motion" sein müssen, sonst ist der "nomotion or nomotion" immer noch wahr
Nicht wundern, ist ein Bewegungsmelder mehr dazu gekommen, der steht hier auf dem Schreibtisch, damit ich nicht immer raus rennen muss.
List:
Internals:
DEF (([5:50-7:30] or [16:00-22:10]) and ([MultiSensor_Einfahrt:brightness] < 40) and ([Bewegungsmelder] eq "nomotion" or [Bewegungsmelder_Hexen] eq "nomotion" or [Bewegungsmelder_Schleppdach] eq "nomotion"))
(set HUEGroup2 pct 10,
set HUEDevice9 pct 10)
DOELSEIF
(([MultiSensor_Einfahrt:brightness] < 40) and ([Bewegungsmelder] eq "motion" or [Bewegungsmelder_Hexen] eq "motion" or [Bewegungsmelder_Schleppdach] eq "motion"))
(set HUEGroup2 pct 100,
set HUEDevice9 pct 100)
DOELSE
(set HUEGroup2 off,
set HUEDevice9 off)
FUUID 5d0be02c-f33f-ae29-77fc-0419a24f25ce354f
MODEL FHEM
NAME doif_Garten_Strahler
NR 194
NTFY_ORDER 50-doif_Garten_Strahler
STATE cmd_1
TYPE DOIF
VERSION 19786 2019-07-05 21:47:08
READINGS:
2019-08-12 22:00:08 Device Bewegungsmelder
2019-08-12 22:00:08 cmd 1
2019-08-12 22:00:08 cmd_event Bewegungsmelder
2019-08-12 22:00:08 cmd_nr 1
2019-08-12 22:00:08 e_Bewegungsmelder_STATE nomotion
2019-08-12 21:55:03 mode enabled
2019-08-12 22:00:08 state cmd_1
2019-08-12 21:55:03 timer_01_c01 13.08.2019 05:50:00
2019-08-12 21:55:03 timer_02_c01 13.08.2019 07:30:00
2019-08-12 21:55:03 timer_03_c01 13.08.2019 16:00:00
2019-08-12 21:55:03 timer_04_c01 12.08.2019 22:10:00
Regex:
accu:
attr:
cmdState:
wait:
0:
0
1:
130
waitdel:
condition:
0 (::DOIF_time($hash,0,1,$wday,$hms) or ::DOIF_time($hash,2,3,$wday,$hms)) and (::ReadingValDoIf($hash,'MultiSensor_Einfahrt','brightness') < 40) and (::InternalDoIf($hash,'Bewegungsmelder','STATE') eq "nomotion" or ::InternalDoIf($hash,'Bewegungsmelder_Hexen','STATE') eq "nomotion" or ::InternalDoIf($hash,'Bewegungsmelder_Schleppdach','STATE') eq "nomotion")
1 (::ReadingValDoIf($hash,'MultiSensor_Einfahrt','brightness') < 40) and (::InternalDoIf($hash,'Bewegungsmelder','STATE') eq "motion" or ::InternalDoIf($hash,'Bewegungsmelder_Hexen','STATE') eq "motion" or ::InternalDoIf($hash,'Bewegungsmelder_Schleppdach','STATE') eq "motion")
days:
devices:
0 MultiSensor_Einfahrt Bewegungsmelder Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
1 MultiSensor_Einfahrt Bewegungsmelder Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
all MultiSensor_Einfahrt Bewegungsmelder Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
do:
0:
0 set HUEGroup2 pct 10, set HUEDevice9 pct 10
1:
0 set HUEGroup2 pct 100, set HUEDevice9 pct 100
2:
0 set HUEGroup2 off, set HUEDevice9 off
helper:
event nomotion
globalinit 1
last_timer 4
sleeptimer -1
timerdev Bewegungsmelder
timerevent nomotion
triggerDev Bewegungsmelder
DOIF_eventas:
cmd_nr: 1
cmd: 1
cmd_event: Bewegungsmelder
state: cmd_1
timerevents:
nomotion
timereventsState:
state: nomotion
triggerEvents:
nomotion
triggerEventsState:
state: nomotion
internals:
0 Bewegungsmelder:STATE Bewegungsmelder_Hexen:STATE Bewegungsmelder_Schleppdach:STATE
1 Bewegungsmelder:STATE Bewegungsmelder_Hexen:STATE Bewegungsmelder_Schleppdach:STATE
all Bewegungsmelder:STATE Bewegungsmelder_Hexen:STATE Bewegungsmelder_Schleppdach:STATE
interval:
0 -1
1 0
2 -1
3 2
intervalfunc:
itimer:
localtime:
0 1565668200
1 1565674200
2 1565704800
3 1565640600
readings:
0 MultiSensor_Einfahrt:brightness
1 MultiSensor_Einfahrt:brightness
all MultiSensor_Einfahrt:brightness
realtime:
0 05:50:00
1 07:30:00
2 16:00:00
3 22:10:00
time:
0 5:50
1 7:30
2 16:00:00
3 22:10:00
timeCond:
0 0
1 0
2 0
3 0
timer:
0 0
1 0
2 0
3 0
timers:
0 0 1 2 3
trigger:
triggertime:
1565640600:
localtime 1565640600
hash:
1565668200:
localtime 1565668200
hash:
1565674200:
localtime 1565674200
hash:
1565704800:
localtime 1565704800
hash:
uiState:
uiTable:
Attributes:
DbLogExclude .*
do resetwait
icon icoUhr
room Zeitschaltuhren
wait 0:130
Zitat von: amenomade am 12 August 2019, 22:00:21
EDIT: vergiss nicht, dass damit er aus cmd_1 rauskommt, BEIDE Bewegungsmelder auf "motion" sein müssen, sonst ist der "or"immer noch wahr
Das verstehe ich jetzt nicht so ganz.
Ich versuche mal zu erklären was ich machen will.
Wenn einer der beiden oder auch beide Bewegungsmelder ausgelöst werden, soll das Licht auf pct 100 gehen. Wenn alle Bewegungsmelder wieder melden nomotion, soll das Licht wieder gedimmt werden,
Natürlich nur in der gewünschten Zeit und wenn es Dunkel genug ist, ansonsten sollen die Lampen aus bleiben.
ZitatWenn alle Bewegungsmelder wieder melden nomotion,
Dann muss der aber so sein:
(([5:50-7:30] or [16:00-22:10]) and [MultiSensor_Einfahrt:brightness] < 40 and [Bewegungsmelder] eq "nomotion" and [Bewegungsmelder_Hexen] eq "nomotion" and [Bewegungsmelder_Schleppdach] eq "nomotion")
Zitat von: Starsurfer am 12 August 2019, 22:09:43
Ich versuche mal zu erklären was ich machen will.
Wenn einer der beiden oder auch beide Bewegungsmelder ausgelöst werden, soll das Licht auf pct 100 gehen. Wenn alle Bewegungsmelder wieder melden nomotion, soll das Licht wieder gedimmt werden,
Natürlich nur in der gewünschten Zeit und wenn es Dunkel genug ist, ansonsten sollen die Lampen aus bleiben.
Dann schreibe dein DOIF genau wie Du deinen Text schreibt:
((motion or motion or motion) and Zeit and brightness < 40)
(pct 100)
DOELSEIF (nomotion and nomotion and nomotion and Zeit and brighness < 40)
(pct 10)
DOELSE
(off)
Zitat von: Otto123 am 12 August 2019, 22:13:20
Dann muss der aber so sein:
(([5:50-7:30] or [16:00-22:10]) and [MultiSensor_Einfahrt:brightness] < 40 and [Bewegungsmelder] eq "nomotion" and [Bewegungsmelder_Hexen] eq "nomotion" and [Bewegungsmelder_Schleppdach] eq "nomotion")
Funktioniert leider nicht, bleibt bei cmd_1 trotz motion.
List:
Internals:
DEF (([5:50-7:30] or [16:00-22:30]) and ([MultiSensor_Einfahrt:brightness] < 40) and ([Bewegungsmelder] eq "nomotion" or [Bewegungsmelder_Hexen] eq "nomotion" or [Bewegungsmelder_Schleppdach] eq "nomotion"))
(set HUEGroup2 pct 10,
set HUEDevice9 pct 10)
DOELSEIF
(([5:50-7:30] or [16:00-22:30]) and [MultiSensor_Einfahrt:brightness] < 40 and [Bewegungsmelder] eq "nomotion" and [Bewegungsmelder_Hexen] eq "nomotion" and [Bewegungsmelder_Schleppdach] eq "nomotion")
(set HUEGroup2 pct 100,
set HUEDevice9 pct 100)
DOELSE
(set HUEGroup2 off,
set HUEDevice9 off)
FUUID 5d0be02c-f33f-ae29-77fc-0419a24f25ce354f
MODEL FHEM
NAME doif_Garten_Strahler
NR 194
NTFY_ORDER 50-doif_Garten_Strahler
STATE cmd_1
TYPE DOIF
VERSION 19786 2019-07-05 21:47:08
READINGS:
2019-08-12 22:18:57 Device Bewegungsmelder
2019-08-12 22:18:57 cmd 1
2019-08-12 22:18:57 cmd_event Bewegungsmelder
2019-08-12 22:18:57 cmd_nr 1
2019-08-12 22:18:57 e_Bewegungsmelder_STATE motion
2019-08-12 22:17:32 mode enabled
2019-08-12 22:18:57 state cmd_1
2019-08-12 22:17:32 timer_01_c01 13.08.2019 05:50:00
2019-08-12 22:17:32 timer_02_c01 13.08.2019 07:30:00
2019-08-12 22:17:32 timer_03_c01 13.08.2019 16:00:00
2019-08-12 22:17:32 timer_04_c01 12.08.2019 22:30:00
2019-08-12 22:17:32 timer_05_c02 13.08.2019 05:50:00
2019-08-12 22:17:32 timer_06_c02 13.08.2019 07:30:00
2019-08-12 22:17:32 timer_07_c02 13.08.2019 16:00:00
2019-08-12 22:17:32 timer_08_c02 12.08.2019 22:30:00
Regex:
accu:
attr:
cmdState:
wait:
0:
0
1:
130
waitdel:
condition:
0 (::DOIF_time($hash,0,1,$wday,$hms) or ::DOIF_time($hash,2,3,$wday,$hms)) and (::ReadingValDoIf($hash,'MultiSensor_Einfahrt','brightness') < 40) and (::InternalDoIf($hash,'Bewegungsmelder','STATE') eq "nomotion" or ::InternalDoIf($hash,'Bewegungsmelder_Hexen','STATE') eq "nomotion" or ::InternalDoIf($hash,'Bewegungsmelder_Schleppdach','STATE') eq "nomotion")
1 (::DOIF_time($hash,4,5,$wday,$hms) or ::DOIF_time($hash,6,7,$wday,$hms)) and ::ReadingValDoIf($hash,'MultiSensor_Einfahrt','brightness') < 40 and ::InternalDoIf($hash,'Bewegungsmelder','STATE') eq "nomotion" and ::InternalDoIf($hash,'Bewegungsmelder_Hexen','STATE') eq "nomotion" and ::InternalDoIf($hash,'Bewegungsmelder_Schleppdach','STATE') eq "nomotion"
days:
devices:
0 MultiSensor_Einfahrt Bewegungsmelder Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
1 MultiSensor_Einfahrt Bewegungsmelder Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
all MultiSensor_Einfahrt Bewegungsmelder Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
do:
0:
0 set HUEGroup2 pct 10, set HUEDevice9 pct 10
1:
0 set HUEGroup2 pct 100, set HUEDevice9 pct 100
2:
0 set HUEGroup2 off, set HUEDevice9 off
helper:
event motion
globalinit 1
last_timer 8
sleeptimer -1
timerdev Bewegungsmelder
timerevent motion
triggerDev Bewegungsmelder
DOIF_eventas:
cmd_nr: 1
cmd: 1
cmd_event: Bewegungsmelder
state: cmd_1
timerevents:
motion
timereventsState:
state: motion
triggerEvents:
motion
triggerEventsState:
state: motion
internals:
0 Bewegungsmelder:STATE Bewegungsmelder_Hexen:STATE Bewegungsmelder_Schleppdach:STATE
1 Bewegungsmelder:STATE Bewegungsmelder_Hexen:STATE Bewegungsmelder_Schleppdach:STATE
all Bewegungsmelder:STATE Bewegungsmelder_Hexen:STATE Bewegungsmelder_Schleppdach:STATE
interval:
0 -1
1 0
2 -1
3 2
4 -1
5 4
6 -1
7 6
intervalfunc:
itimer:
localtime:
0 1565668200
1 1565674200
2 1565704800
3 1565641800
4 1565668200
5 1565674200
6 1565704800
7 1565641800
readings:
0 MultiSensor_Einfahrt:brightness
1 MultiSensor_Einfahrt:brightness
all MultiSensor_Einfahrt:brightness
realtime:
0 05:50:00
1 07:30:00
2 16:00:00
3 22:30:00
4 05:50:00
5 07:30:00
6 16:00:00
7 22:30:00
time:
0 5:50
1 7:30
2 16:00:00
3 22:30:00
4 5:50
5 7:30
6 16:00:00
7 22:30:00
timeCond:
0 0
1 0
2 0
3 0
4 1
5 1
6 1
7 1
timer:
0 0
1 0
2 0
3 0
4 0
5 0
6 0
7 0
timers:
0 0 1 2 3
1 4 5 6 7
trigger:
triggertime:
1565641800:
localtime 1565641800
hash:
1565668200:
localtime 1565668200
hash:
1565674200:
localtime 1565674200
hash:
1565704800:
localtime 1565704800
hash:
uiState:
uiTable:
Attributes:
DbLogExclude .*
do resetwait
icon icoUhr
room Zeitschaltuhren
wait 0:130
@amenomade
Werde ich morgen mal testen.
Sieht aber zumindest Logisch aus :-)
Statt nomotion and nomotion und motion or motion würde ich hier auf ein DOIF_Reading gehen und dieses auswerten.
Zumal das noch eine nette Rückmeldung für die Fehlersuche gibt.
Falschversteher Codeverdreher :)
Du hast doch jetzt im DOELSEIF den falschen Code stehen. Mein Vorschlag war doch für den DOIF Zweig. Also eher so: (ungetestet)
Genauso wie amenomade sein Prinzipvorschlag ;)
(([5:50-7:30] or [16:00-22:10]) and [MultiSensor_Einfahrt:brightness] < 40 and [Bewegungsmelder] eq "nomotion" and [Bewegungsmelder_Hexen] eq "nomotion" and [Bewegungsmelder_Schleppdach] eq "nomotion")
(set HUEGroup2 pct 10,
set HUEDevice9 pct 10)
DOELSEIF
(([MultiSensor_Einfahrt:brightness] < 40) and ([Bewegungsmelder] eq "motion" or [Bewegungsmelder_Hexen] eq "motion" or [Bewegungsmelder_Schleppdach] eq "motion"))
(set HUEGroup2 pct 100,
set HUEDevice9 pct 100)
DOELSE
(set HUEGroup2 off,
set HUEDevice9 off)
Danke erst einmal für die Hilfestellung :D
Wenn ich nachher zu Hause bin, werde ich deinen Code mal testen.
So habe ich jetzt eingebaut und werde mal bis heute Abend warten und gucken ob es jetzt so funktioniert, wie ich mir das denke.
Nochmal Danke an Euch für die Hilfe :-)
So gerade getestet. cmd_1 funktioniert, das doif geht aber nicht in cmd_2 wenn ein oder beide Bewegungsmelder auf motion gehen. Es bleibt im cmd_1.
Hier nochmal ein list:
Internals:
DEF (([5:50-7:30] or [16:00-22:10]) and [MultiSensor_Einfahrt:brightness] < 40 and [Bewegungsmelder_Hexen] eq "nomotion" and [Bewegungsmelder_Schleppdach] eq "nomotion")
(set HUEGroup2 pct 10,
set HUEDevice9 pct 10)
DOELSEIF
(([MultiSensor_Einfahrt:brightness] < 40) and ([Bewegungsmelder_Hexen] eq "motion" or [Bewegungsmelder_Schleppdach] eq "motion"))
(set HUEGroup2 pct 100,
set HUEDevice9 pct 100)
DOELSE
(set HUEGroup2 off,
set HUEDevice9 off)
FUUID 5d0be02c-f33f-ae29-77fc-0419a24f25ce354f
MODEL FHEM
NAME doif_Garten_Strahler
NR 194
NTFY_ORDER 50-doif_Garten_Strahler
STATE cmd_1
TYPE DOIF
VERSION 19786 2019-07-05 21:47:08
READINGS:
2019-08-13 21:46:05 Device Bewegungsmelder_Schleppdach
2019-08-13 21:46:05 cmd 1
2019-08-13 21:46:05 cmd_event Bewegungsmelder_Schleppdach
2019-08-13 21:46:05 cmd_nr 1
2019-08-13 21:40:54 e_Bewegungsmelder_Hexen_STATE nomotion
2019-08-13 21:46:05 e_Bewegungsmelder_Schleppdach_STATE nomotion
2019-08-13 21:43:18 e_MultiSensor_Einfahrt_brightness 0.27
2019-08-13 15:48:35 mode enabled
2019-08-13 21:46:05 state cmd_1
2019-08-13 15:48:35 timer_01_c01 14.08.2019 05:50:00
2019-08-13 15:48:35 timer_02_c01 14.08.2019 07:30:00
2019-08-13 15:48:35 timer_03_c01 13.08.2019 16:00:00
2019-08-13 15:48:35 timer_04_c01 13.08.2019 22:10:00
2019-08-13 21:40:54 wait_timer no timer
Regex:
accu:
attr:
cmdState:
wait:
0:
0
1:
130
waitdel:
condition:
0 (::DOIF_time($hash,0,1,$wday,$hms) or ::DOIF_time($hash,2,3,$wday,$hms)) and ::ReadingValDoIf($hash,'MultiSensor_Einfahrt','brightness') < 40 and ::InternalDoIf($hash,'Bewegungsmelder_Hexen','STATE') eq "nomotion" and ::InternalDoIf($hash,'Bewegungsmelder_Schleppdach','STATE') eq "nomotion"
1 (::ReadingValDoIf($hash,'MultiSensor_Einfahrt','brightness') < 40) and (::InternalDoIf($hash,'Bewegungsmelder_Hexen','STATE') eq "motion" or ::InternalDoIf($hash,'Bewegungsmelder_Schleppdach','STATE') eq "motion")
days:
devices:
0 MultiSensor_Einfahrt Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
1 MultiSensor_Einfahrt Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
all MultiSensor_Einfahrt Bewegungsmelder_Hexen Bewegungsmelder_Schleppdach
do:
0:
0 set HUEGroup2 pct 10, set HUEDevice9 pct 10
1:
0 set HUEGroup2 pct 100, set HUEDevice9 pct 100
2:
0 set HUEGroup2 off, set HUEDevice9 off
helper:
event nomotion
globalinit 1
last_timer 4
sleepdevice Bewegungsmelder_Hexen
sleepsubtimer 0
sleeptimer -1
timerdev Bewegungsmelder_Schleppdach
timerevent nomotion
triggerDev Bewegungsmelder_Schleppdach
DOIF_eventas:
cmd_nr: 1
cmd: 1
cmd_event: Bewegungsmelder_Schleppdach
state: cmd_1
timerevents:
nomotion
timereventsState:
state: nomotion
triggerEvents:
nomotion
triggerEventsState:
state: nomotion
internals:
0 Bewegungsmelder_Hexen:STATE Bewegungsmelder_Schleppdach:STATE
1 Bewegungsmelder_Hexen:STATE Bewegungsmelder_Schleppdach:STATE
all Bewegungsmelder_Hexen:STATE Bewegungsmelder_Schleppdach:STATE
interval:
0 -1
1 0
2 -1
3 2
intervalfunc:
intervaltimer:
itimer:
localtime:
0 1565754600
1 1565760600
2 1565704800
3 1565727000
readings:
0 MultiSensor_Einfahrt:brightness
1 MultiSensor_Einfahrt:brightness
all MultiSensor_Einfahrt:brightness
realtime:
0 05:50:00
1 07:30:00
2 16:00:00
3 22:10:00
time:
0 5:50
1 7:30
2 16:00:00
3 22:10:00
timeCond:
0 0
1 0
2 0
3 0
timer:
0 0
1 0
2 0
3 0
timers:
0 0 1 2 3
trigger:
triggertime:
1565727000:
localtime 1565727000
hash:
1565754600:
localtime 1565754600
hash:
1565760600:
localtime 1565760600
hash:
uiState:
uiTable:
Attributes:
DbLogExclude .*
do resetwait
icon icoUhr
room Zeitschaltuhren
wait 0:130
Ich glaube ich lege für die Bewegungsmelder mal ein Dummy an mit motion und nomotion.
2019-08-13 21:46:05 cmd 1
2019-08-13 21:46:05 cmd_event Bewegungsmelder_Schleppdach
2019-08-13 21:46:05 cmd_nr 1
2019-08-13 21:40:54 e_Bewegungsmelder_Hexen_STATE nomotion
2019-08-13 21:46:05 e_Bewegungsmelder_Schleppdach_STATE nomotion
Um 21:46 ist Schleppdach auf "nomotion" gesprungen, und Hexen war schon seit 21:40 auf nomotion. Dann hat das DOIF den Zustand cmd 1 genommen. Scheint ganz normal zu sein.
Und mit wait 0:130
sorgst Du dafür, dass er erst 130s nach "motion" das pct 100 ausführt. Meine Vermutung: Du hast Bewegung gemacht, das DOIF war dann bereit auf cmd_2 zu gehen, musste aber 130 Sekunden warten, aber die Bewegungsmelder sind vor diese 130 Sekunden wieder auf nomotion gegangen, und er hat wieder auf cmd_1 gesprungen.
Ja aber als ich an den Bewegungsmelder vorbei gegangen bin, sind die Lichter gedimmt geblieben. Hatte leider mein Handy nicht mit um nachzuschauen.
Ich muss das am WE Mal testen wenn ich mehr Zeit habe. Kommt einen ja immer die Arbeit dazwischen.
Ah ok eigentlich sollten die Lampen damit 3min an bleiben. Werde ich Mal löschen.
Zitat von: Starsurfer am 13 August 2019, 22:09:07
Ja aber als ich an den Bewegungsmelder vorbei gegangen bin, sind die Lichter gedimmt geblieben. Hatte leider mein Handy nicht mit um nachzuschauen.
Ich muss das am WE Mal testen wenn ich mehr Zeit habe. Kommt einen ja immer die Arbeit dazwischen.
Ah ok eigentlich sollten die Lampen damit 3min snbleiben. Werde ich Mal löschen.
Damit die Lampen "
anbleiben", musst Du den Befehl
verzögern, der die Lampen
ausschaltet (oder auf 10 runterdimmt)
Und noch was: in deinem DOELSEIF fehlt die Zeitbedingung (ich gebe zu, Otto hatte die auch vergessen ;) ). So wie dein DOIF im Moment aussieht, wird eine Bewegung auch mitte der Nacht die Lampen auf 100 dimmen
EDIT: und noch eine Kleinigkeit: 3 Minuten = 180 Sekunden, nicht 130 ;)
Jaaaa das war es.es funktioniert ;D
Ja das die Uhrzeit da fehlt, ist so gewollt.
Danke