Autor Thema: Tageszeitabhängiges Dimmen  (Gelesen 6603 mal)

Gumma

  • Gast
Tageszeitabhängiges Dimmen
« am: 28 Dezember 2012, 12:54:29 »
Grundsätzliche Funktion in diesem Code:

Ein Bewegungsmelder (1_2112) sendet bei ungenügendem Tageslicht einen Schaltbefehl ("on"). Ausgehend von der Uhrzeit werden durch den Code unterschiedliche Dim-Befehle an die Deckenbeleuchtung (1_2111) ausgegeben. Nach einer jeweils zu definierenden Nachlaufzeit (hier: 2min und 10sec) schaltet das Licht automatisch ab.


define EG_Diele_S1_Tag notify 1_2112:on.* {\
my $hm = sprintf("%%02d:%%02d", $hour, $min);;\
if($hm >= "00:00" && $hm < "06:45") {\
fhem ("set 1_2111 dim25%%;; delete wieder_aus ;; define wieder_aus at +00:02:10 set 1_2111 off") }\
if($hm >= "06:45" && $hm < "21:00") {\
fhem ("set 1_2111 dim100%%;; delete wieder_aus ;; define wieder_aus at +00:02:10 set 1_2111 off") }\
if($hm >= "21:00" && $hm <= "23:59") {\
fhem ("set 1_2111 dim50%%;; delete wieder_aus ;; define wieder_aus at +00:02:10 set 1_2111 off") }\
}


1_2112 ist ein Bewegungsmelder
1_2111 ist die Deckenbeleuchtung im Flur

Funktion hier:
Zwischen 00:00 Uhr und 06:45 Uhr fungiert die Deckenlampe als Notbeleuchtung (25%)
Zwischen 06:45 Uhr und 21:00 Uhr wird die Diele mit 100% beleuchtet.
Zwischen 21:00 Uhr und 00:00 Uhr gibts eine gemütliche Abendbeleuchtung von 50%
Ist genügend Tageslicht vorhanden, sendet der Bewegungsmelder 1_2112 gar kein Signal (Regelung über Bewegungsmelder)

Achtung: Der Bewegungsmelder FS20 DU-2 kann nicht alle dim-Werte ausführen. Z.B. kann Dim30% nicht ausgeführt werden (siehe jew. Spezifikation des Dimmers)!


Hier eine noch ungetestete Version von Puschel74:

"Bin mir jetzt zwar nicht zu 100% sicher aber ich meine das das so klappen sollte
inkl. Prüfung ob wieder_aus schon existiert.
Dann hättest du dein wieder_aus einmal und kannst so bequemer die Nachlaufzeit
anpassen.
Mit der anderen Variante kannst du auch 3 unterschiedliche Nachlaufzeiten benutzen."


define EG_Diele_S1_Tag notify 1_2112:on.* {\
my $hm = sprintf("%%02d:%%02d", $hour, $min);;\
if($hm >= "00:00" && $hm < "06:45") {\
fhem ("set 1_2111 dim25%%") }\
if($hm >= "06:45" && $hm < "21:00") {\
fhem ("set 1_2111 dim100%%") }\
if($hm >= "21:00" && $hm <= "23:59") {\
fhem ("set 1_2111 dim50%%") }\
if (DEFINED wieder_aus) {\ #oder so ähnlich, hab nicht nachgeschaut
fhem ("delete wieder_aus");;\
}\
fhem ("define wieder_aus at +00:02:10 set 1_2111 off");;\
}


Danke an alle, die hier mitgearbeitet haben!

VG
Gumma