Licht dimmen mit Bewegungsmelder und Taster: Unterschied zwischen den Versionen

Aus FHEMWiki
Keine Bearbeitungszusammenfassung
(→‎Script: %% => % sowie @ => $NAME)
 
Zeile 13: Zeile 13:
define flur_s4_hell FS20 a875 62
define flur_s4_hell FS20 a875 62
define n_flur_s4_hell notify flur_s4_hell:.* { \
define n_flur_s4_hell notify flur_s4_hell:.* { \
  {fhem("set flur_licht dim100%%")};;\
  {fhem("set flur_licht dim100%")};;\
  {fhem("set flur_licht on-old-for-timer 120")};;\
  {fhem("set flur_licht on-old-for-timer 120")};;\
  }
  }
Zeile 20: Zeile 20:
attr flur_bewegung model fs20piri
attr flur_bewegung model fs20piri
define n_flur_bewegung2 notify flur_bewegung:.* { \
define n_flur_bewegung2 notify flur_bewegung:.* { \
  Log 3, "@: flur_licht ".Value("flur_licht");;\
  Log 3, "$NAME: flur_licht ".Value("flur_licht");;\
  my $mzstate=Value("flur_licht");;\
  my $mzstate=Value("flur_licht");;\
  if ($hour >= 7 && $hour <= 20) {\
  if ($hour >= 7 && $hour <= 20) {\
   if ($mzstate eq "off"){\
   if ($mzstate eq "off"){\
   {fhem("set flur_licht dim50%%")}\
   {fhem("set flur_licht dim50%")}\
   }\
   }\
   {fhem("set flur_licht on-old-for-timer 120")}\
   {fhem("set flur_licht on-old-for-timer 120")}\

Aktuelle Version vom 17. November 2015, 23:42 Uhr

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, dass 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, "$NAME: 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