Hallo zusammen,
nachfolgend möchte ich gerne meine Idee eines HUE-Stufenschalters vorstellen, den viele von euch vielleicht schon kennen werden, da ich diese Idee bereits öfters im Internet mitgeteilt habe. Wer es noch nicht kennt darf gerne weiterlesen.
Hintergrund: Als damals die Unterstützung und Steuerung der Philips-HUE LED Lampen durch RWE-SmartHome möglich wurde, habe ich überlegt wie man es am effizientesten hinbekommen könnte diese innovativen Lampen mit SmartHome anzusteuern. Die schier unendliche Anzahl der möglichen Farben war beeindruckend, ebenso die zur Verfügung stehenden Dimmstufen dieser LED-Lampen. Dementsprechend war dagegen die Anzahl der, unter SmartHome zur Verfügung stehenden, Schaltflächen (8 pro Fernbedienung und 2 pro Wandsender) ziemlich begrenzt. Am Anfang habe ich daher Szenarien (damals hiessen diese noch Profile) mit einer bestimmten Farbe und einer ebenso bestimmten Helligkeit auf die Tasten einer Fernbedienung programmiert. Irgendwann kam mir dann aber eine bessere Idee, mit der mehr Möglichkeiten entstanden und diese möchte ich hier nun vorstellen.
Man nehme:
Eine beliebige Anzahl an Philips-HUE Lampen (in SH integriert)
Einen SH-Wandsender (WSC2) oder eine Fernbedienung (BRC8)
Eine entsprechend den Anforderungen gemässe Anzahl an Zuständen (Zustandsvariablen)
Eine ordentliche Portion Zeit zur Erstellung der erforderlichen Szenarien (Profile)
Der Grundgedanke meines Stufenschalters war der, jeweils mit den gleichen Schaltflächen eines SH-Gerätes, beliebig viele unterschiedliche Helligkeiten bzw. Farben der HUE-Lampen aufrufen/schalten zu können. Dazu wird eine entsprechende Anzahl an Zuständen bzw. Variablen erforderlich, welche erstellt werden müssen bevor man die Szenarien einrichten kann.
Nehmen wir also an wir hätten im Wohnzimmer eine oder mehrere HUE-Lampen, welche wir nachfolgend in ihrer Helligkeit (in 25% Schritten) und Farbe (z.B. vier Farben) schalten wollen. Dann müssten wir dazu folgende Zustände anlegen (die Namen sind nur beispielhaft gewählt, die Abkürzungen ebenso, sollten aber selbsterklärend sein) :
HUE-WZ-H-0%
HUE-WZ-H-25%
HUE-WZ-H-50%
HUE-WZ-H-75%
HUE-WZ-H-100%
HUE-WZ-F-gelb
HUE-WZ-F-grün
HUE-WZ-F-blau
HUE-WZ-F-rot
Nun erstellen wir ein Szenario bei dem der Auslöser ein Tastendruck (z.B. WSC2-WZ oben) sein würde. In diesem Szenario geben wir eine Bedingung an, nämlich, dass einer der o.g. Zustände "HUE-WZ-Hxy" gesetzt ist. Beispiel:
Wenn Tastendruck WSC2-WZ-oben und Bedingung Zustand HUE-WZ-H-0%=JA - Dann setze HUE-WZ-H-0%=NEIN und setze HUE-WZ-H-25%=JA und setze alle HUE-Lampen im Wohnzimmer auf 25% Helligkeit.
Das nächste Szenario wäre demnach:
Wenn Tastendruck WSC2-WZ-oben und Bedingung Zustand HUE-WZ-H-25%=JA - Dann setze HUE-WZ-H-25%=NEIN und setze HUE-WZ-H-50%=JA und setze alle HUE-Lampen im Wohnzimmer auf 50% Helligkeit.
Das übernächste:
Wenn Tastendruck WSC2-WZ-oben und Bedingung Zustand HUE-WZ-H-50%=JA - Dann setze HUE-WZ-H-50%=NEIN und setze HUE-WZ-H-75%=JA und setze alle HUE-Lampen im Wohnzimmer auf 75% Helligkeit.
Usw. bis 100% und danach wieder auf 0%, also AUS. Mit jedem Tastendruck auf die gleiche Schaltfläche wird also die Helligkeit der HUE Lampen um 25% erhöht, bis diese nach 100% wieder auf Null gesetzt wird.
Wenn man eine Abstufung von 20% oder noch feiner wünscht, muss man einfach die Anzahl der Zustände und Szenarien entsprechend erhöhen.
Das gleiche Verfahren habe ich dann auch für die Farben benutzt, welche mit der unteren Schaltfläche des gleichen Wandsenders "durchgeschaltet" werden konnten. Das sähe dann z.B. so aus:
Wenn Tastendruck WSC2-WZ-unten und Bedingung Zustand HUE-WZ-F-gelb=JA - Dann setze HUE-WZ-F-gelb=NEIN und setze HUE-WZ-F-grün=JA und setze alle HUE-Lampen im Wohnzimmer auf die Farbe "grün" und Sättigung 100%.
Danach:
Wenn Tastendruck WSC2-WZ-unten und Bedingung Zustand HUE-WZ-F-grün=JA - Dann setze HUE-WZ-F-grün=NEIN und setze HUE-WZ-F-blau=JA und setze alle HUE-Lampen im Wohnzimmer auf die Farbe "blau" und Sättigung 100%.
Usw. - Ich denke das Prinzip ist nun klar und man kann den Farbraum beliebig erweitern, indem man entsprechend viele Zustände hinzufügt. Wenn man anstelle eines Wandsenders mit zwei Tasten eine SH-Fernbedienung verwendet, dann könnte man das Ganze, mit einer dritten Taste, auch noch für unterschiedliche Sättigungswerte modifizieren. Ich habe mich auf volle Farben mit 100% Sättigung beschränkt.
Bei der Erstellung der Profile ist jedoch darauf zu achten, dass man ein "Flattern" (ein zu schnelles Durchschalten der Zustände) vermeidet. Ich habe dazu leider eine ganze Weile mit den Einschalt- und Ausschaltverzögerungen der Zustände experimentieren müssen, bis die Betätigung der Taste jeweils nur eine Stufe weiterschaltete. Die entsprechenden Verzögerungswerte muss man aber individuell ermitteln, da anscheinend jede SH-Zentrale eigene Werte erforderlich macht (abhängig von deren sonstiger CPU-Auslastung). Bei mir funktioniert eine Einschaltverzögerung von 3 Sekunden, in Verbindung mit einer Ausschaltverögerung von einer Sekunde, sehr gut!
Anmerkung: Damit das Ganze funktioniert muss man vorher jeweils einen der Zustände für Helligkeit und Farbe von Hand auf JA setzen, also z.B. HUE-WZ-H-0% = JA, denn wenn alle Zustände auf NEIN stehen würden, dann würde ja schließlich keines der Szenarien die erforderlichen Bedingungen zur Ausführung der Schaltung vorfinden. WICHTIG: Es dürfen natürlich auch niemals zwei Zustände jeweils für Helligkeit oder Farbe gleichzeitig auf JA stehen, denn dann funktioniert es natürlich auch nicht mehr wie es soll.
Auf die Einbettung von Screenshots habe ich aus zwei Gründen bewusst verzichtet. Zum Einen ist die Anzahl der erforderlichen Szenarien bzw. der darin enthaltenen Regeln sehr hoch, zum Anderen sehen diese Regeln auf den ersten Blick viel komplizierter aus, als es diese Sache eigentlich ist. Daher habe ich lieber versucht das Funktionsprinzip der Schaltregeln ausführlich und verständlich mit Worten zu erklären.
ACHTUNG - WICHTIGER HINWEIS - EDIT 03.04.2017 - U.A. ANTWORT AUF DIE WERTVOLLE ANMERKUNG VON 03CHRIS
Die Auswertung von Zustandsvariablen (Zuständen) erscheint auf den ersten Blick umständlich zu sein, denn man könnte ja (anscheinend) genauso gut, wie von 03chris in Seiner Antwort vorgeschlagen, direkt die Zustände der HUE-Lampen auswerten und als Bedingung in den Szenarien für die nächste Schaltung einsetzen.
Diese Schlussfolgerung ist aber leider sehr trügerisch, denn dabei wird vorausgesetzt, dass die HUE-Lampen ausschließlich über die Stufenschaltungs-Szenarien geschaltet werden würden, also dass diese immer entweder auf 0%, 25%, 50%, 75% oder 100% Helligkeit oder (was viel komplizierter sein würde) auf den in den Szenarien definierten Farben stehen würden. Sämtlichen anderen Szenarien und deren Farb- und Helligkeitsschaltungen müssten also in Betrachtung gezogen werden um die Funktion zu gewährleisten.
Diese Abhängigkeiten können jedoch getrost ignoriert werden, wenn man die Schaltabhängigkeit nur an den beschriebenen Zuständen und nicht am tatsächlichen Lampenzustand der HUE-Lampen festmacht. Der scheinbar umständlichere Weg ist hier eindeutig der Bessere. Ich möchte das an einem kleinen Beispiel verdeutlichen:
Angenommen unsere Stufenschaltung würde sich aktuell im Zustand HUE-WZ-H-0% und HUE-WZ-F-Gelb befinden, dann wären Lampen bei (angenommener) Farbe=gelb mit 0% Helligkeit (also AUS) eigentlich ausgeschaltet. Würde man nun, z.B. über irgendeine (3rd Party oder Philips) Smartphone-App diese Lampen auf irgendeine beliebige Helligkeitsstufe und irgendeine beliebige Farbe schalten, dann würden die HUE-Lampen diese Werte annehmen.
Hätten wir unsere Stufenschaltung nun auf der Abfrage der realen HUE-Werte, anstelle der Zustände, aufgebaut, dann würde die Steuerung über die SH-Stufenschaltung nur dann funktionieren, wenn wir zufällig exakt die richtige Farbe und Helligkeit angegeben hätten.
Da wir unsere Stufenschaltung jedoch auf die Abfrage der Zustände aufgebaut haben, funktioniert die "Weiterschaltung" zur nächsten Helligkeitsstufe oder Farbe ganz problemlos und völlig unabhängig davon welche Farbe oder Helligkeit die HUE Lampe vorher hatte.
Viel Spaß beim Nachbauen und viele Grüße,
Thomas