FHEM Forum

FHEM => Automatisierung => Thema gestartet von: vbs am 15 April 2014, 21:25:19

Titel: Mein Spielmodul: SMARTLIGHTS
Beitrag von: vbs am 15 April 2014, 21:25:19
Ich habe mir ein kleines Modul gebastelt, welches dafür gedacht ist, Automatisierung der Lichtsteuerung zu vereinfachen. Das Ganze werden die meisten vermutlich recht speziell finden und wenig mit anfangen können. Aber das ist ok :)
Ich bin sowohl Perl- als auch FHEM-Neuling und daher natürlich dankbar für jegliche Vorschläge, Anregungen, Kritiken, Fragen... Evtl. kann aber auch jemand tatsächlich etwas mit dem Modul anfangen (außer mir).

Also kurz zum Hintergrund: Ich steuere bei mir die Beleuchtung in Abhängigkeit der Umgebungshelligkeit und je nachdem ob jemand zu hause ist. Dafür benutze ich dieses Modul sozusagen als "Proxy" für die Licht-Devices. Das Modul hat folgende Features:

Wie man es benutzt (an Beispielen):
Also erstmal wie gewohnt, das Device anlegen (man braucht nur genau eins):
define sl SMARTLIGHTS

Um nun ein Licht zu steuern:
set sl set [device] [dimLevel] [rampTime]
zB:
set sl set wz_licht1 75 5

Es werden auch devspecs unterstützt und auch structures. Also sowas geht auch:
set sl set wz_licht1,structures_alleLichter,bad_licht3 75 5

Die Helligkeitsschwellwerte für Räume und Devices werden in den Attributen twilightRooms und twilightDevices gespeichert. Und zwar in der Form "<RaumOderDev>=<Helligkeitswert>,..."
Also zum Beispiel:
Wohnzimmer=2500,Flur=2500,Schlafzimmer=2500

Zum einfachen Hinzufügen eines Devices in die Liste, kann man auch set verwenden:
set sl twilightDevThresh wz_licht1 3000

Und so speziell für einen Raum:
set sl twilightRoomThresh wohnzimmer 2500

Sobald ein Helligkeitsschwellwert für ein Raum bzw. ein Device gesetzt ist, wird das beim "set" berücksichtigt. Also nur wenn die Umgebungshelligkeit unter dem Schwellwert für das Device liegt, dann wird das Licht auch eingeschaltet (es wird dabei jedoch noch der Hysterese-Wert in Prozent subtrahiert beim Ausschalten bzw. addiert beim Einschalten). Ansonsten wird der Befehl ignoriert. Device-Schwellwerte haben dabei Vorrang vor Raum-Schwellwerten, falls für ein Devices beides gesetzt ist.

So teilt man dem Modul den aktuellen Helligkeitswert mit (zB im notify des Helligkeitssensors):
set sl brightness 3674

So kann ein Licht "getoggelt" werden:
set sl toggle wz_licht1

So kann man den Dimm-Schwellwert konfigurieren, ab dem Switch-Lichter eingeschaltet werden:
attr sl dimSwitchLevel 65

Der Hysterewert (in Prozent) für den Helligkeitsautomatik wird so eingestellt:
attr sl twilightHysteresisPct 12

Oje, ist ganz schön viel Text geworden... :/ Ich hoffe, ich konnte es jetzt einigermaßen rüberbringen. Ansonsten einfach fragen, falls jemand Interesse hat.