Licht dimmen mit Bewegungsmelder und Taster

Aus FHEMWiki

Aufgabe:

Ein Flurlicht soll gedimmt werden per Bewegungsmelder (FS20 PIRI) mit 50% Lichtstärke.

Zum Schuheanziehen im Flur soll das Licht aber per Taster auf 100% geschaltet werden können. Der Bewegungsmelder springt aber nur an zwischen 7 und 20 Uhr.

Die Schwierigkeit besteht darin, daß die z.b. minütlich kommende Meldung vom Bewegungsmelder nicht wieder auf 50% runterdimmt.

Script

define flur_licht FS20 a875 10
attr flur_licht model fs20di
attr flur_licht follow-on-for-timer 1
#Flurlicht auf hell schalten Taster
define flur_s4_hell FS20 a875 62
define n_flur_s4_hell notify flur_s4_hell:.* { \
 {fhem("set flur_licht dim100%%")};;\
 {fhem("set flur_licht on-old-for-timer 120")};;\
 }
####Bewegungsmelder#######
define flur_bewegung FS20 a875 00
attr flur_bewegung model fs20piri
define n_flur_bewegung2 notify flur_bewegung:.* { \
 Log 3, "@: flur_licht ".Value("flur_licht");;\
 my $mzstate=Value("flur_licht");;\
 if ($hour >= 7 && $hour <= 20) {\
  if ($mzstate eq "off"){\
   {fhem("set flur_licht dim50%%")}\
  }\
  {fhem("set flur_licht on-old-for-timer 120")}\
 }\
}


Erläuterungen:

Taster und Bewegungsmelder schalten das Licht ein mit on-old-for-timer 120 - also für 2 Minuten auf der vorher eingestellten Helligkeit und danach schaltet der Dimmer automatisch ab.

Um Abfragen zu können, ob die Lampe aus ist, ist der Parameter follow-on-for-timer beim Dimmer wichtig, damit der Status wie der Dimmer verhält und nach dem 2 Minuten auf off geht.

Der Bewegungsmelder darf als nur auf die 50% schalten, wenn das licht schon aus war - ansonsten darf er nur die Einschaltzeit verlängern, damit das Licht auf 100% bleibt, solange noch jemand im Flur ist.

Der Taster hingegen darf IMMER sofort das licht auf 100% setzen ohne Abfrage.

Beim Bewegungsmelder kann und sollte man übrigens die zeit bis zur nächsten Meldung sinnvoll einstellen - diese zeit muss kürzer sein als die Dauer mit der das Licht auf "ein" steht, damit das