Licht dimmen mit Bewegungsmelder und Taster: Unterschied zwischen den Versionen

Aus FHEMWiki
(Die Seite wurde neu angelegt: „== Aufgabe: == Ein Flurlicht soll gedimmt werden per Bewegungsmelder (FS20 PIRI) mit 50% Lichtstärke. Zum Schuheanziehen im Flur soll das Licht aber per Tas…“)
 
(→‎Script: %% => % sowie @ => $NAME)
 
(2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 4: Zeile 4:
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.
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.
Die Schwierigkeit besteht darin, dass die z. B. minütlich kommende Meldung vom Bewegungsmelder nicht wieder auf 50% runterdimmt.


== Script ==
== Script ==
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")}\
Zeile 40: Zeile 40:
Der Taster hingegen darf IMMER sofort das licht auf 100% setzen ohne Abfrage.
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
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
[[Kategorie:Code Snippets]]

Aktuelle Version vom 18. November 2015, 00: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