Licht dimmen mit Bewegungsmelder und Taster: Unterschied zwischen den Versionen
(→Script: %% => % sowie @ => $NAME) |
|||
(Eine dazwischenliegende Version von einem anderen Benutzer wird 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, | 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, " | 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 | 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]] | [[Kategorie:Code Snippets]] |
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