Hallo Leute,
ich habe ein Problem mit der Aussenlichtsteuerung.
Folgende Voraussetzungen:
1. Haustür, 2x Garagentore
Wenn eines der 3 Sensoren auf "open" geht, sollt das Licht angehen.
Wenn wieder alle zu sind, soll ein Countdown von 5 Minuten angehen und dann abschalten.
Sollte in der Zeit wieder etwas aufgehen, sollen die 5 Minuten wieder von vorne los gehen.
Ich hätte das im Perl mit einer While-Wend-Schleife gelöst, aber die ist im Fhem nicht möglich, kann mir wer einen Tipp geben?
Danke vorweg!
Guck doch bitte mal nach Watchdog, damit solltest du dein Problem lösen können.
Ok mache ich ... danke!
oder DOIF. (Tür oder Tor oder Tor) (Licht an) (Licht aus)
Attribut wait 0,300
Attribut do always
Erklärung:
Erster Befehl nach 0 Sek Verzögerung,
Zweter Befehl nach 300 Sekunden -> 5 Minuten
Hier ein Beispiel von meiner Installation:
defmod Licht_Einfahrt DOIF ([GPIO_IN_27:"^on$"] and [?OUT_2:PortA7] eq "off") (set OUT_2 PortA7 on) (set OUT_2 PortA7 off)\
DOELSEIF ([GPIO_IN_27:"^on$"] and [?OUT_2:PortA7] eq "on") (set OUT_2 PortA7 off)\
DOELSEIF ([GPIO_IN_27:"^Longpress:.on$"]) (set OUT_2 PortA7 on)
attr Licht_Einfahrt userattr room_map structexclude
attr Licht_Einfahrt cmdState on|off
attr Licht_Einfahrt devStateIcon on:on:cmd_2 initialize|initialized|off:off:cmd_1
attr Licht_Einfahrt do always
attr Licht_Einfahrt stateFormat [OUT_2:PortA7]
attr Licht_Einfahrt wait 0,180:0:0
Habe es mit Structure und Watchdog hinbekommen ...
Ich habe einfach einen Event auf die Structure CLOSED gesetzt und schon gings :
defmod wd_Aussenlicht_Timer watchdog Aussentueren:closed 00:05:00 Aussentueren:open set WemoSwitch off
Jetzt habe aber bei einer zweiten Sache mit dem Watchdog ein Problem:
Im Badezimmer habe ich einen Motion-Sensor hängen, der mir nur 2 Alarme ausgibt (im Monitor):
2017-11-27_21:19:45 Sensor_Bad alarm: HomeSecurity: Event cleared: Motion Detection - Unknown Location, arg 0108
2017-11-27_21:21:35 Sensor_Bad alarm: HomeSecurity: Motion Detection - Unknown Location
Wie kann ich für diese beiden Events einen Watchdog definieren -> Motion Cleared soll einen Event auslösen, wenn das längere Zeit so bleibt, quasi als Bewegungsmelder
Ok Schade ... hätte gehofft, das Problem hat schon wer lösen können ...