Im zweiten Teil der kleinen Tipps und Tricks Serie zeige ich euch einen Weg, wie Ihr euch für RGB Lampen, bzw. Switches einen Schnellzugriff für Farben basteln könnt und wie diese in Szenen verwendet werden können.
Vor einigen Wochen ist eine Zipato RGB(W) LED Birne in mein Z-Wave Netzwerk eingezogen. Und nachdem ich diese auf meinem Schreibtisch mit passender Lampe deponiert hatte, wurde natürlich sehr viel herum experimentiert, welche Farben sehen schön aus, welche Einstellung ist die richtige für welche Stimmung...ihr kennt das.
Nun hatten sich nach einiger Zeit bestimmte Favoriten heraus kristalisiert, aber gleich zwei Punkte nervten mich gewaltig:
- in der Z-Way-Oberfläche lassen sich keine Favoriten speichern
- die RGB-Wahl steht nicht für Szenen zur Verfügung - nicht gerade smart
Doch dafür gibt es eine Lösung, die sich zudem bequem mit den Z-Way Boardmitteln umsetzen lässt, wir erstellen uns virtuelle Devices, die für uns diese Aufgabe übernehmen.
Los geht's:
Schritt 1:
Herausfinden, welche "Nummer" unsere RGB-Lampe hat; geht über das Zahnrad im Dashboard:
unter "Gerätenummer" die erste Zahl merken, in meinem Fall also die "21":
Schritt 2:
Unter "Anwendungen" eine neue "Erzeuge Gerät mit JS-Code" App anlegen.
Schritt 3:
Jetzt die neue App sinnvoll benennen, als Typen legen wir toogleButton fest und jetzt kommt die eigentlich Magie ins Spiel, wir lassen ein wenig JavaScript-Code unsere Wunschfarbe einstellen, die Zeile für ein schickes Orange lautet z.B.:
zway.devices[21].SwitchColor.SetMultiple([2,3,4], [230,62,0]); zway.devices[21].Basic.Set(25)
An jene Stellen, wo eine 21 steht müsst ihr natürlich eure Zahl aus Schritt 1 eintragen!
Um das ganze noch ein wenig zu erklären: Grundlegend sind es zwei Befehle, die durch das ";" getrennt werden. Der erste Befehl ist eigentlich nur ganz am Schluss interessant; dort finden sich zwei Blöcke eckiger Klammern mit einigen Zahlen. Der erste Block sagt welche Kanäle angesprochen werden sollen, es gibt hier folgende:
- 0 = warmes Weiß
- 1 = kaltes Weiß
- 2 = Rot
- 3 = Grün
- 4 = Blau
- ...
Solltet ihr eine Lampe/einen Switch haben, die noch weitere Kanäle bedienen, gäbe es auch noch gelb, cyan und lila. Der zweite Block gibt an wie intensiv die Farbe sein soll, mit einem Wert von 0-255. Wer schon mit Grafikprogrammen, oder Websites zu tun hatte kennt diese Form der Farbkodierung sicherlich. Theoretisch könnte noch ein Wert hinter den zwei Blöcken angegeben werden, welcher bestimmt wie lange der Farbwechsel dauern soll. Dies könnte so aussehen:
...SetMultiple([2,3,4], [230,62,0], 10)
Im Fall meiner Zipato-Birne wird diese Funktion scheinbar nicht unterstüzt, bzw. ignoriert - die Farbe wird also sofort gewechsel.
Der zweite Befehl sagt der Lampe/dem Switch eigentlich nur noch, dass sie angehen soll, gedimmt mit 25%. Hier kann also der Wert frei variiert werden. Effektiv macht unser Schalter also nichts als den Farbwert zu setzen und die Beleuchtung darauf folgend einzuschalten. Alles mit diesen kleinen Schaltern, zudem: mit etwas Arbeit für passende Icons und dem letzten Tutorial kann das dann auch optisch schick aussehen:
Grundlegend sollte das mit jedem Gerät funktionieren, welches in der ExpertUI unter Konfiguration die CommandClass "SwitchColor" aufweist. Alle Infors für andere Anpassungen liefert auch das ZWay-Entwickler-Handbuch ab Seite 87.
Update:
Nach einem Kommentar von Tim, noch folgende Ergänzung: Wer einen dimmbaren Schalter erzeugen möchte wählt in Schritt 3 einfache einen "switchMultilevel" statt des "toggleButton". Der Code von oben muss nur so geändert werden, dass in der letzten Klammer zwei "%" Zeichen stehen also z.B.:
zway.devices[21].SwitchColor.SetMultiple([2,3,4], [230,62,0]); zway.devices[21].Basic.Set(%%)
In der zweiten Zeile fügt ihr folgendes ein:
zway.devices[21].SwitchColor.Basic.Get()
Dabei muss natürlich auch hier die "21" eurer Gerätenummer angepasst werden! Das Resultat sollte dann etwa so aussehen:
Die Wunsch-Farbe lässt sich dann auch direkt dimmen, in meinen Versuchen klappte das zwar grundlegend, war jedoch nicht immer 100% responsiv und zuverlässig. Daher nutze ich weiter die einfachen Schalter und dimme Zentral über den Standard-Regler.
Fazit?
Da sich das virutelle Gerät in Szenen bzw. wie eine Szene verwenden lässt, kann es extrem vielfältig eingesetzt werden. Zum Beispiel:
- bequemer Umschalter für verschiedene Farben
- zu einer festen Zeit eine feste Farbe einschalten
- die Beleuchtung einer Szene auf diese Weise ganz genau festlegen z.B. für's TV gucken, oder für abendliches chillen
- zur Verwendung in anderen Apps, wie "Wenn/Dann" oder "Logische Regel": Rauch- oder Wassermelder schlagen an - die Lampe schaltet auf rot, oder blau um auch optisch zu warnen!
- Ein Bewegungsmelder aktiviert die Lampe, Nachts aber nur ganz leicht gedimmt!
Neben diesen "Klassikern" noch ein paar Ideen: jede Stunde hat eine eigene Farbe, die Lampe bildet also eine "optische Uhr", die Farbe paast sich der (Außen)temperatur an - die LED-Leiste im Kleiderschrank sagt mir also wie warm ich mich anziehen muss.
Welche Ideen habt ihr, bzw. welche Dinge wollt ihr noch umsetzen, oder habt sie schon aktiv im Einsatz, lasst mal in den Kommentaren hören!
Hallo,
sehr interessante Anleitung. Wird heute Nachmittag gleich mal versucht umzusetzen. Vor allem die Nutzung der Java-Funktionalität (code) interessiert mich. Gerne weiter solche Beispiele die einem diese Skriptsprache für unsere Zwecke etwas weiter bringt.
Das Icon-Tuning hatte ich noch nicht Probiert da es ja leider nur für das Dashbord bestand hat und nicht in den angelegten Räumen angezeigt wird.
Würde es eine Möglichkeit geben deinem Zipato Rot oder Blau button auch noch einen Regler für die Helligkeit zu geben? Also Quasi den Basic Set-Befehl auch direkt auf diesem Button zu ändern?
Grüße
Tim
Hallo Tim,
auf die Idee war ich ehrlich gesagt gar nicht gekommen, werde ich aber noch ergänzen, das funktioniert nämlich tatsächlich! :) Dann kann direkt an dem Schalter-Element auch die Helligkeit gedimmt werden, ich hab dafür immer das ursprüngliche Dimmer-Element genutzt, was ich als bequem genug empfand. Zumal ich z.B. die 25% meist ausreichend finde.
Eigentlich muss dazu nur ein "SwitchMultilevel" statt "toogleButton" gewählt werden, in die erste Zeile kommt der Code wie oben rein, nur das die Prozent des Dimmers mit "%%" ersetzt werden müssen, also in ...Set(%%). In die Zeile für's Abrufen kann noch ein: "zway.devices[21].SwitchColor.Basic.Get()"
Dann sollte es schon laufen.
Allerdings ist die Verwendung in der Zeitschalter-App ist nicht mehr direkt möglich (Version 2.1.2 kann in 2.2.0 schon anders sein). Wenn/Dann und Logische Regel klappt immer noch direkt und die Zeitschaltung klappt auch noch, aber nur über folgenden Umweg: vorher in eine Szene packen, dann kann man die Szene wieder in der Zeitschaltung nutzen - in Version 2.1.2 zumindest.
Danke für den Super-Hinweis! :)
Hi Alpha,
danke erstmal für die fixe Antwort mit dem Multicode. Komme erst jetzt mal wieder dazu ein bissl am Z-Wave rumzuspielen.
Mir ist aufgefallen das meine RGB-Beleuchtung mit deinem ursprünglichen Code immer erst recht hell aufleuchtet und dann in die 25% dimmstellung geht. Es werden ja auch, wie von dir beschrieben 2 Befehle gesendet. Wenn man den Wert in den eckigen Klammern gleich auf die 25% Dimmstellung anpasst kann man dieses kurze aufflackern abschalten. Der Code für deinen Orangeschalter sieht dann nur noch wie folgt aus:
zway.devices[3].SwitchColor.SetMultiple([2,3,4],[64,20,0])
somit hast du direkt die 25% eingestellt. Jetzt probiere ich mich mal an dem MultiLevelCode von dir. Vielen Dank dafür.
Grüße
Danke für den Tipp! Habe mir das Teil gekauft und bin genau daran zunächst gescheitert. Mit dem Workaround funktionierts prima!