LightScene – Erstellen von Lichtszenen

Je länger man sich mit FHEM beschäftigt, desto mehr Devices hat man eingebunden. Dies führt früher oder später dazu, dass man auch mehrere Licht-Devices eingebunden hat. Sei es eine einfache Stehlampe, die man über eine Funksteckdose schaltet, eine MiLight-LED-Lampe oder ein RGB-LED-Streifen. Die Anzahl an smartem Licht wächst und wächst und man gelangt an einen Punkt, in dem man die einzelnen Lampen miteinander verknüpfen will. Sobald sich zum Beispiel die Hängelampe auf rot schaltet, soll die LED-Leiste in der Vitrine sich ebenfalls auf rot schalten. Um dies zu realisieren, kann man natürlich mit DOIFs oder Notifys arbeiten. Diese Lösung ist jedoch nicht gerade komfortabel. In diesem Beitrag möchte ich euch deshalb eine elegantere Lösung zeigen. Der Einsatz des Hilfsmoduls „LightScene“.

Mit diesem Modul lassen sich sogenannte Lichtszenen abspeichern und durch ein einzigen set-Befehl wieder aufrufen. So lassen sich komplexe Lichtszenen erstellen ohne sich Gedanken über den korrekten Aufbau eines DOIFs oder Notifys zu machen.

Definition

Das Hilfsmodul definiert sich wie folgt:

Bereits während der Definition können alle beteiligten Devices der gewünschten Lichtszene angegeben werden. Zusätzliche Geräte lassen sich natürlich später durch den DEF-Editor hinzufügen. Für eine Lichtszene mit der oben genannten MiLight-LED-Lampe und der LED-Leiste lautet die Definition wie folgt:


Mit diesem erstellten Device lassen sich nun die gewünschten Lichtszenen einrichten.

Lichtszenen einrichten

Bevor man nun die Lichtszene definiert, sollte man die gewünschte Lichtszene einstellen. Das heißt die Devices, welche dem Device Lichtszene zugeordnet wurden, wie gewünscht einstellen. In meinem Fall wird das Device „Lichtleiste“ mit der Farbe blau und das Device „WZ_Haengelampe“ mit der Farbe grün eingeschaltet.

Das Einrichten einer Lichtszene geschieht dann über ein set-Befehl. Über das Drop-Down-Menü lässt sich der Eintrag „save“ auswählen.

Über das nebenstehende Eingabefeld lässt sich nun der Name der Lichtszene eingeben. In diesem Fall wird die Lichtszene den Namen „Lichtszene1“ bekommen.

Klickt man nun auf „set“, dann wird der aktuelle Status der beiden Devices (Lichtleiste und WZ_Haengelampe) in die Lichtszene „Lichtszene1“ abgespeichert. Es lassen sich natürlich auch mehrere Lichtszenen einrichten. Einfach die gewünschte Szene einstellen und dann wieder über „set“ abspeichern. Alle eingerichteten Szenen erscheinen nun an oberer Stelle in der Detailseite des LightScene-Devices.

Eine neue Lichtszene lässt sich natürlich auch über die Kommandozeile erstellen:

„Lichtszene“ beschreibt dabei das LightScene-Device und „Lichtszene1“ den Namen der ein zurichteten Lichtszene.

Lichtszenen aktivieren

Die eingerichteten Lichtszenen lassen sich über verschiedene Wege aktivieren. Bei geöffneter Detailseite lassen sich die einzelnen Lichtszenen durch anklicken auf den entsprechenden Namen aktivieren.

Die zweite Möglichkeit ist das Setzen der Lichtszene über ein set-Befehl. Dieser set-Befehl kann einfach über das Drop-Down-Menü ausgewählt werden. Über ein weiteres Drop-Down-Menü lässt sich dann die gewünschte Szene auswählen und über „set“ aktivieren.

Der set-Befehl kann natürlich auch über die Kommandozeile eingegeben werden. Dieser lässt sich dann auch zum Beispiel in Notifys einbauen.

„Lichtszene“ steht dabei für das oben definierte LightScene-Device. Mit „Lichtszene1“ gibt man die gewünschte Lichtszene an.

Die dritte Möglichkeit ist das nacheinander durchschalten aller Szenen. Dies geschieht entweder ebenfalls über das Drop-Down-Menü oder über einen set-Befehl:


Mit diesen Befehlen kann entweder die nächste (nextScene) oder die vorherige (previousScene) Lichtszene aktiviert werden. Ist aktuell keine Szene aktiv, dann wird entweder die erste Szene (nextScene) oder die letzte Szene (previousScene) aktiviert.

Lichtszenen bearbeiten

Eingerichteten Szenen lassen sich natürlich auch bearbeiten. Am einfachsten geht dies über das Drop-Down-Menü „Edit scene“.

Es öffnet sich der Szenen-Editor. Hier werden nun alle Devices aufgelistet, welche der Lichtszene zugeordnet sind. Über ein weiteres Drop-Down-Menü lässt sich nun der Reiter „set“ oder „setcmd“ auswählen.

Bei ausgewähltem „set“, lässt sich im nebenstehenden Eingabefeld der auszuführende Befehl editieren. In meinem Fall wird zum Beispiel unteranderem beim aktivieren der „Lichtszene1“ das Device „LEDLeiste“ mit dem Befehel „RGB 0000FF“ eingeschaltet.

Über das Eingabefeld lässt sich dieser Befehl nun editieren. Der Syntax muss dabei so befolgt werden, dass der eingegebene Befehl vom Device auch als set-Befehl akzeptiert wird. Im Fall der „LEDLeiste“ wäre es zum Beispiel folgender set-Befehl:


Wählt man dagegen „setcmd“ aus, so lassen sich komplexere Befehle eingeben. Es lassen sich dann auch andere bzw. zusätzliche Devices schalten, welche eigentlich nicht zur Lichtszene zugehören. Mehrere Befehle müssen durch ein Semikolon voneinander getrennt sein. Des Weiteren muss bei „setcmd“ der komplette Befehl ausgeschrieben werden.

Das Bearbeiten kann natürlich auch direkt über die Kommandozeile erfolgen:


bzw.

Beim Absenden über die Kommandozeile muss jedoch auf das doppelte Semikolon geachtet werden.

Lichtszenen löschen

Eingerichtete Lichtszenen können selbstverständlich auch wieder gelöscht werden, ohne das ganze Device löschen zu müssen. Dies kann, wie das Editieren von Lichtszenen, über das set-Drop-Down-Menü erledigt werden. Dazu einfach „remove“ auswählen und den Namen der zu löschenden Lichtszene über das nebenstehende Drop-Down-Menü auswählen.

Dies kann natürlich auch über die Kommandozeile erledigt werden:

Auch hier steht „Lichtszene“ wieder für das LightSzene-Device und „Lichtszene2“ für die zu löschende Lichtszene.

Lichtszenen umbenennen

Neben dem Bearbeiten und dem Löschen von Lichtszenen, lassen sich diese auch umbenennen. Dies geschieht ebenfalls über das Drop-Down-Menü. Einfach „rename“ auswählen und im nebenstehenden Eingabefeld den alten, gefolgt vom neuen Namen eingeben.

In diesem Fall wird die Lichtszene „Lichtszene2“ in „lesen“ umbenannt.

Der dazu äquivalente set-Befehl lautet wie folgt:

Auch hier steht „Lichtszene“ wieder für das LightSzene-Device.  „Lichtszene2“ ist der alte Name und „lesen“ der neue Name.

Lichtszenen auslesen

Möchte man zu einem späteren Zeitpunkt einmal kontrollieren, welche Einstellungen eine Lichtszene beinhaltet, dann lässt sich über ein get-Befehl die Lichtszene auslesen. Am einfachsten geht dies über das get-Drop-Down-Menü. Über den Eintrag „scene“ und der ausgewählten gewünschten Lichtszene erhält man durch klicken auf „get“ die mit der Lichtszene verbundenen Einstellungen.
Dies klappt natürlich auch über die Kommandozeile:

Es werden die Einstellungen der „Lichtszene1“ ausgegeben.

Lichtszenen auflisten

Über einen weiteren get-Befehl lassen sich alle vorhandenen Lichtszenen auslesen. Dazu einfach „scenes“ im Menü auswählen.

Man erhält nun eine Auflistung aller vorhandener Szenen. Diese Auflistung lässt sich zum Beispiel verwenden, um in selbst geschriebenen Skripte (99_myUtils.pm) die vorhandenen Lichtszene auszulesen und mit diesen dann weiter arbeiten zu können.

Attribute

Wie jedes Modul, hat auch das LightScene-Modul einige spezielle Attribute. Im folgenden werde ich die wichtigsten Attribute etwas näher drauf eingehen. Wer mehr Infos zu den verfügbaren Attributen braucht, dem empfehle ich das Commando-Ref von FHEM.

async_delay

Mit dem Attribut „async_delay“ lässt sich eine Zeitverzögerung zwischen den einzelnen Befehlen einstellen. Hat man zum Beispiel wie in meinem Fall zwei Devices eingebunden (Lichtleiste und WZ_Haengelampe), so werden beim Aktivieren der Lichtszene mindestens zwei Befehle abgesetzt.

Mit dem Attribut „async_delay“ lässt sich die Zeit zwischen Absetzen des ersten und des zweiten Befehls angeben. Es lässt sich aber nur die Zeit zwischen den Befehlen der Devices einstellen. Hat man aber zum Beispiel durch „setcmd“ weitere Befehle innerhalb eines Devices eingerichtet, so werden diese ohne Zeitverzögerung abgearbeitet. Hier eine kleine Abbildung zur Veranschaulichung:


Die Zeitangabe erfolgt dabei in Sekunden.

lightSceneParamsToSave

Standardmäßig wird beim Abspeichern einer Lichtszene nur das state-Reading in die abgespeicherte Lichtszene eingebunden.

Es kann jedoch auch sein, dass man weitere Readings mit abspeichern möchte. Wie zum Beispiel der Farbraum „hsv“, anstellte von „rgb“. Mit dem Attribut „lightSceneParamsToSave“ lassen sich diese zusätzlichen Readings mit einbinden. Das Attribut wird dabei beim Device selber gesetzt. Mehrere Readings lassen sich durch ein Komma trennen.

Je nach Device-Typ wird dieses Attribut auch automatisch gesetzt. Zum Beispiel der Farbraum „hsv“ der MiLight-Lampen wird automatisch durch setzen des Attribut „lightSceneParamsToSave“ eingebunden.

Mit LightScene lassen sich somit komfortabel Lichtszenen einrichten und sie mit nur einem einzigen Befehl aktivieren. Das Modul lässt sich natürlich auch zweckentfremden und andere Devices als Lichter einbinden. So lässt sich zum Beispiel sein HomeCinema mit diesem Modul komfortabel einrichten. Dazu einfach alle benötigten Devices einbinden. Zum Beispiel:

Anschließend alle gewünschten Einstellungen vornehmen und diese als eine Szene abspeichern.

Ich hoffe ich konnte euch das Modul etwas näher bringen und euch helfen eure eigenen Lichtszenen einzurichten. Bei Fragen könnt ihr gerne ein Kommentar hinterlassen.

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

Benachrichtige mich zu:
avatar
Fotos und Bilder
 
 
 
sonstiges Dateiformat
 
 
 
wpDiscuz