Hallo seit gut einer Woche möchte ich meinen HM-SEC-MDIR-2 dazu überreden einen M-LC-Sw1PBU-FM für 30 Sekunden zu schalten. Wenn eine weitere Bewegung erkannt wird, dann soll sich die Dauer für weitere 30 Sekunden verlängern.
Aus dem Commandref den Tipp mit wait 0,30 übernommen aber er möchte partout nicht schalten. Er quittiert immer mit einer Fehlermeldung.:
perl error in condition: EventDoIf('FL_Bewegungsmelder',$hash,'motion',1) and (EventDoIf('FL_Bewegungsmelder',$hash,'brightness',1)<35) (set FL_Licht on, set Pushover1 msg 'Flur' 'Bewegung erkannt - Licht eingeschaltet') : syntax error at (eval 6853) line 1, near ") ("
Hat jemand eine Idee ???
Gruß
Carsten
Hier ein List
Internals:
DEF ## Licht per Bewegung ein
([FL_Bewegungsmelder:"motion"]
and
([FL_Bewegungsmelder:"brightness"]<35)
(set FL_Licht on,
set Pushover1 msg 'Flur' 'Bewegung erkannt - Licht eingeschaltet')
##DOELSEIF
## (set FL_Licht off,
## set Pushover1 msg 'Flur' 'Licht aus')
)
NAME di_LichtFlur
NR 403
NTFY_ORDER 50-di_LichtFlur
STATE initialized
TYPE DOIF
Readings:
2016-10-17 08:05:23 Device FL_Bewegungsmelder
2016-10-17 07:19:30 cmd 0
2016-10-17 08:05:23 e_FL_Bewegungsmelder_events battery: ok,brightness: 32,cover: closed
2016-10-17 08:05:23 error perl error in condition: EventDoIf('FL_Bewegungsmelder',$hash,'motion',1) and (EventDoIf('FL_Bewegungsmelder',$hash,'brightness',1)<35) (set FL_Licht on, set Pushover1 msg 'Flur' 'Bewegung erkannt - Licht eingeschaltet') : syntax error at (eval 6550) line 1, near ") ("
2016-10-17 07:19:30 state initialized
Condition:
0 EventDoIf('FL_Bewegungsmelder',$hash,'motion',1) and (EventDoIf('FL_Bewegungsmelder',$hash,'brightness',1)<35) (set FL_Licht on, set Pushover1 msg 'Flur' 'Bewegung erkannt - Licht eingeschaltet')
Devices:
0 FL_Bewegungsmelder
all FL_Bewegungsmelder
Do:
0:
0
Helper:
event battery: ok,brightness: 32,cover: closed
globalinit 1
last_timer 0
sleeptimer -1
triggerDev FL_Bewegungsmelder
triggerEvents:
battery: ok
brightness: 32
cover: closed
triggerEventsState:
battery: ok
brightness: 32
cover: closed
Internals:
Itimer:
Readings:
Regexp:
0:
All:
State:
Trigger:
all FL_Bewegungsmelder
Attributes:
do resetwait
room DOIF
wait 0,30
Ich sehe eine zuviel geöffnete Klammer vor FL_Bewegungsmelder:"brightness".
Das hätte Dir bei der Erstellung im DEF-Editor die Klammerprüfung anzeigen sollen, s. https://forum.fhem.de/index.php/topic,45373.0.html und https://forum.fhem.de/index.php/topic,58237.0.html
So habe den Fehler gefunden....
und wenn man mal nachdenkt....
Lt Commandref :
attr di_on_for_timer wait 0,30
was passiert ?
es werden logischerweise ZWEI set Befehle im DOIF Zweig erwartet... ich hatte aber nur einen....
so sieht es jetzt richtig aus :
([FL_Bewegungsmelder:motion])
(set FL_Licht on)
(set FL_Licht off)
jetzt noch mit der Brightness gespielt dann hab ich alles...
Danke für die Hilfe...
Gruß
Carsten