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:

define <name> LightScene [<dev1>] [<dev2>] [<dev3>] ...

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:

define Lichtszene LightScene WZ_Haengelampe LEDLeiste

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:
set Lichtszene save Lichtszene1

„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.
set Lichtszene scene Lichtszene1

„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:

set Lichtszene nextScene

set Lichtszene previousScene

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:

set LEDLeiste RGB 0000FF

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.

set WZ_Haengelampe rgb 0000FF; set WZ_Papierlampe off

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

set Lichtszene set Lichtszene1 LEDLeiste RGB 00FFFF

bzw.

set Lichtszene setcmd Lichtszene1 set WZ_Haengelampe rgb 00FFFF;; set WZ_Papierlampe on

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:
set Lichtszene remove Lichtszene2

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:
set Lichtszene rename Lichtszene2 lesen

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:
get Lichtszene scene Lichtszene1

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.

get Lichtszene Scenes

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:

attr Lichtszene async_delay 3

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.
attr WZ_Haengelampe lightSceneParamsToSave hsv

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:
define HomeCinema LightScene TV,Pioneer,Lampe

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.
 

LightScene in meiner FHEM Live-Demo

Möchtet ihr das Hilfsmodul LightScene in einer FHEM-Umgebung sehen, dann schaut doch auf meiner FHEM Live-Demo vorbei. Dort findet ihr im Raum „Hilfsmodule“ ein LighScene-Device und im Wohnzimmer ein DropDown-Menü zum Auswählen einer Lichtszene.
 
 

Hinterlasse einen Kommentar

3 Kommentare auf "LightScene – Erstellen von Lichtszenen"

Benachrichtige mich zu:
avatar
Fotos und Bilder
 
 
 
sonstiges Dateiformat
 
 
 
Sortiert nach:   neuste | älteste | beste Bewertung
Wockli
Gast
Wockli

Hallo,
vielen Dank für deine Mühe.

Kann man die so erstellten Lichtszenen auch per Siri ansteuern? Bekomme es nämlich nicht hin.

Wockli
Gast
Wockli

Homebridge zusammen mit FHEM läuft übrigens und Lampen lassen sich auch generell ein- und ausschalten.

wpDiscuz