Um die Magnettafel unseres Sohns per Sprache zu steuern und diese in das SmartHome einzubinden, habe ich mich mit dem WiFI LED Binding von OpenHAB beschäftigt.
Ein paar Beispiele und weitere Details könnt Ihr euch hier ansehen.
Grundsätzliche Einrichtung
Die grundsätzliche Einrichtung unterscheidet sich nicht großartig wie bei anderen openHAB-Funktionen.
Wichtig ist, wie im vorherigen Artikel beschrieben, alle LED’s bereits in das Heimnetzwerk zu integrieren.
Binding (WiFi LED)
Das WiFi LED Binding wird über die Paper UI wie folgt konfiguriert:
- Paper UI – Add-ons – BINDINGS – WiFi LED Binding (2.3.0) – INSTALL
- Paper UI – Configuration – Bindings – WiFi LED Binding – nur Kontrolle
Am Binding ist keine weitere Konfiguration notwendig.
Things (WiFi_LED.things)
Der LED WiFi Controller sollte danach automatisch in der Inbox der Paper UI erscheinen. Ich beschreibe hier die manuelle Konfiguration der Elemente.
Die unterstützen Controller und die zugehörigen Treiber incl. Kanäle kann man in der Dokumentation entsprechend nachlesen.
Thing wifiled:wifiled:xxx "NAME" @ "LED" [ip="IP", port=5577, pollingPeriod=3000, protocol="LD382A", driver="CLASSIC", fadeDurationInMs=1000, fadeSteps=100]
Die Platzhalter xxx, NAME und IP müsst Ihr entsprechend ersetzen.
Items (WiFi_LED.items)
Eine etwas detailliertere Konfiguration (anstatt der Dokumentation) könnt Ihr hier sehen:
Group:Switch Magnet_Table_LEDPresets "Licht Magnettafel LED Presets" <colorwheel> (gOG, gOG_Kind, gLicht, gLicht_OG)
Switch Magnet_Table_LED_power "Licht Magnettafel" <led_strip> (gOG, gOG_Kind, gLicht, gLicht_OG) ["Lighting"] {channel="wifiled:wifiled:xxx:power"}
Dimmer Magnet_Table_LED_white "Licht Magnettafel (Weiß)" (gOG, gOG_Kind, gLicht, gLicht_OG) {channel="wifiled:wifiled:xxx:white"}
Color Magnet_Table_LED_color "Licht Magnettafel (Farbe) [%.0f]" <hue> (gOG, gOG_Kind, gLicht, gLicht_OG) ["Lighting"] {channel="wifiled:wifiled:xxx:color"}
Dimmer Magnet_Table_LED_programSpeed "Licht Magnettafel (Programm-Geschwindigkeit)" <volume_knob> (gOG, gOG_Kind, gLicht, gLicht_OG) {channel="wifiled:wifiled:xxx:programSpeed"}
/////////// MODE Switches
String Magnet_Table_LED_program "Licht Magnettafel (Programm) [MAP(WiFi_LED.map):%s]" <menu> (Magnet_Table_LEDPresets, gOG, gOG_Kind, gLicht, gLicht_OG) {channel="wifiled:wifiled:xxx:program"}
Switch Magnet_Table_LED_preset_0 "Strobe" <smoke> (Magnet_Table_LEDPresets) // Mode: 48
Switch Magnet_Table_LED_preset_1 "Strobe - Custom 1" <smoke> (Magnet_Table_LEDPresets) // Mode: 96
Switch Magnet_Table_LED_preset_2 "Strobe - Rot" <smoke> (Magnet_Table_LEDPresets) // Mode: 49
Switch Magnet_Table_LED_preset_3 "Strobe - Grün" <smoke> (Magnet_Table_LEDPresets) // Mode: 50
Switch Magnet_Table_LED_preset_4 "Strobe - Blau" <smoke> (Magnet_Table_LEDPresets) // Mode: 51
Switch Magnet_Table_LED_preset_5 "Strobe - Cyan" <smoke> (Magnet_Table_LEDPresets) // Mode: 53
Switch Magnet_Table_LED_preset_6 "Strobe - Lila" <smoke> (Magnet_Table_LEDPresets) // Mode: 54
Switch Magnet_Table_LED_preset_7 "Strobe - Gelb" <smoke> (Magnet_Table_LEDPresets) // Mode: 52
Switch Magnet_Table_LED_preset_8 "Strobe - Weiß" <smoke> (Magnet_Table_LEDPresets) // Mode: 55
Switch Magnet_Table_LED_preset_9 "Strobe - R/G/B" <smoke> (Magnet_Table_LEDPresets) // Mode: 57
Switch Magnet_Table_LED_preset_10 "CrossFade - Rot/Grün" <flow> (Magnet_Table_LEDPresets) // Mode: 45
Switch Magnet_Table_LED_preset_11 "CrossFade - Rot/Blau" <flow> (Magnet_Table_LEDPresets) // Mode: 46
Switch Magnet_Table_LED_preset_12 "CrossFade - Blau/Grün" <flow> (Magnet_Table_LEDPresets) // Mode: 47
Switch Magnet_Table_LED_preset_13 "Fade" <colorlight> (Magnet_Table_LEDPresets) // Mode: 37
Switch Magnet_Table_LED_preset_14 "Fade - Weiß" <colorlight> (Magnet_Table_LEDPresets) // Mode: 44
Switch Magnet_Table_LED_preset_15 "Fade - Grün" <colorlight> (Magnet_Table_LEDPresets) // Mode: 39
Switch Magnet_Table_LED_preset_16 "Fade - Dunkelblau" <colorlight> (Magnet_Table_LEDPresets) // Mode: 40
Switch Magnet_Table_LED_preset_17 "Fade - Gelb" <colorlight> (Magnet_Table_LEDPresets) // Mode: 41
Switch Magnet_Table_LED_preset_18 "Fade - Rot " <colorlight> (Magnet_Table_LEDPresets) // Mode: 38
Switch Magnet_Table_LED_preset_19 "Fade - Hellblau " <colorlight> (Magnet_Table_LEDPresets) // Mode: 42
Switch Magnet_Table_LED_preset_20 "Fade - Lila" <colorlight> (Magnet_Table_LEDPresets) // Mode: 43
Switch Magnet_Table_LED_preset_21 "Fade - R/G/B" <colorlight> (Magnet_Table_LEDPresets) // Mode: 45
Switch Magnet_Table_LED_preset_22 "Jump" <chart> (Magnet_Table_LEDPresets) // Mode: 56
Switch Magnet_Table_LED_preset_23 "Jump - R/G/B" <chart> (Magnet_Table_LEDPresets) // Mode: 99
Switch Magnet_Table_LED_preset_24 "Farbe (kein Preset gewählt)" (Magnet_Table_LEDPresets) // Mode: 97
Der gesamte Teil mit den “preset” ist optional. Diesen benötigt Ihr nur, wenn Ihr die LED-Programme auf dem Controller entsprechend verwenden wollt.
xxx müsst Ihr wieder entsprechend eurer Konfiguration ersetzen.
Sitemap (Haus.sitemap)
Die Visualisierung in der Web-Oberfläche und der App habe ich wie folgt gestaltet (ein Großteil für die “presets” ist wieder optional):
Text label="LED" icon="light" {
Frame label="LED" {
Colorpicker item=Magnet_Table_LED_color
Switch item=Magnet_Table_LED_power
Slider item=Magnet_Table_LED_white
}
Frame label="LED-Programm" {
Slider item=Magnet_Table_LED_programSpeed
Text item=Magnet_Table_LED_program
Switch item=Magnet_Table_LED_preset_0
Switch item=Magnet_Table_LED_preset_1
Switch item=Magnet_Table_LED_preset_2
Switch item=Magnet_Table_LED_preset_3
Switch item=Magnet_Table_LED_preset_4
Switch item=Magnet_Table_LED_preset_5
Switch item=Magnet_Table_LED_preset_6
Switch item=Magnet_Table_LED_preset_7
Switch item=Magnet_Table_LED_preset_8
Switch item=Magnet_Table_LED_preset_9
Switch item=Magnet_Table_LED_preset_10
Switch item=Magnet_Table_LED_preset_11
Switch item=Magnet_Table_LED_preset_12
Switch item=Magnet_Table_LED_preset_13
Switch item=Magnet_Table_LED_preset_14
Switch item=Magnet_Table_LED_preset_15
Switch item=Magnet_Table_LED_preset_16
Switch item=Magnet_Table_LED_preset_17
Switch item=Magnet_Table_LED_preset_18
Switch item=Magnet_Table_LED_preset_19
Switch item=Magnet_Table_LED_preset_20
Switch item=Magnet_Table_LED_preset_21
Switch item=Magnet_Table_LED_preset_22
Switch item=Magnet_Table_LED_preset_23
Switch item=Magnet_Table_LED_preset_24
}
}
Map (WiFi_LED.map)
Für die Umsetzung der technischen LED-Programme ist noch eine Map notwendig:
//
48=Strobe
96=Strobe - Custom 1
49=Strobe - Rot
50=Strobe - Gruen
51=Strobe - Blau
53=Strobe - Cyan
54=Strobe - Lila
52=Strobe - Gelb
55=Strobe - Weiss
57=Strobe - R/G/B
45=CrossFade - Rot/Gruen
46=CrossFade - Rot/Blau
47=CrossFade - Blau/Gruen
37=Fade
44=Fade - Weiss
39=Fade - Gruen
40=Fade - Dunkelblau
41=Fade - Gelb
38=Fade - Rot
42=Fade - Hellblau
43=Fade - Lila
45=Fade - R/G/B
56=Jump
99=Jump - R/G/B
97=Farbe (kein Preset gewaehlt)
NULL=undefiniert
-=undefiniert
Da in meiner Installation Umlaute nicht korrekt angezeigt werden, habe ich die Anzeigenamen entsprechend angepasst (das muss ich jetzt “zeitnah” doch einmal lösen).
Rules (WiFi_LED.items)
Für die LED-Programme sind auch noch folgende Regeln notwendig (das sollte sich mit openHAB 2.4 ggf. etwas eleganter gestalten lassen):
////////////////////////////
// LED PRESET RULES
////////////////////////////
rule "Program - Strobe"
when Item Magnet_Table_LED_preset_0 received command ON
then
Magnet_Table_LED_program.sendCommand(48)
end
rule "Program - Strobe - Custom 1"
when Item Magnet_Table_LED_preset_1 received command ON
then
Magnet_Table_LED_program.sendCommand(96)
end
rule "Program - Strobe - Rot"
when Item Magnet_Table_LED_preset_2 received command ON
then
Magnet_Table_LED_program.sendCommand(49)
end
rule "Program - Strobe - Grün"
when Item Magnet_Table_LED_preset_3 received command ON
then
Magnet_Table_LED_program.sendCommand(50)
end
rule "Program - Strobe - Blau"
when Item Magnet_Table_LED_preset_4 received command ON
then
Magnet_Table_LED_program.sendCommand(51)
end
rule "Program - Strobe - Cyan"
when Item Magnet_Table_LED_preset_5 received command ON
then
Magnet_Table_LED_program.sendCommand(53)
end
rule "Program - Strobe - Lila"
when Item Magnet_Table_LED_preset_6 received command ON
then
Magnet_Table_LED_program.sendCommand(54)
end
rule "Program - Strobe - Gelb"
when Item Magnet_Table_LED_preset_7 received command ON
then
Magnet_Table_LED_program.sendCommand(52)
end
rule "Program - Strobe - Weiß"
when Item Magnet_Table_LED_preset_8 received command ON
then
Magnet_Table_LED_program.sendCommand(55)
end
rule "Program - R/G/B"
when Item Magnet_Table_LED_preset_9 received command ON
then
Magnet_Table_LED_program.sendCommand(57)
end
rule "Program - CrossFade - Rot/Grün"
when Item Magnet_Table_LED_preset_10 received command ON
then
Magnet_Table_LED_program.sendCommand(45)
end
rule "Program - CrossFade - Rot/Blau"
when Item Magnet_Table_LED_preset_11 received command ON
then
Magnet_Table_LED_program.sendCommand(46)
end
rule "Program - CrossFade - Blau/Grün"
when Item Magnet_Table_LED_preset_12 received command ON
then
Magnet_Table_LED_program.sendCommand(47)
end
rule "Program - Fade"
when Item Magnet_Table_LED_preset_13 received command ON
then
Magnet_Table_LED_program.sendCommand(37)
end
rule "Program - Fade - Weiß"
when Item Magnet_Table_LED_preset_14 received command ON
then
Magnet_Table_LED_program.sendCommand(44)
end
rule "Program - Fade - Grün"
when Item Magnet_Table_LED_preset_15 received command ON
then
Magnet_Table_LED_program.sendCommand(39)
end
rule "Program - Fade - Dunkelblau"
when Item Magnet_Table_LED_preset_16 received command ON
then
Magnet_Table_LED_program.sendCommand(40)
end
rule "Program - Fade - Gelb"
when Item Magnet_Table_LED_preset_17 received command ON
then
Magnet_Table_LED_program.sendCommand(41)
end
rule "Program - Fade - Rot"
when Item Magnet_Table_LED_preset_18 received command ON
then
Magnet_Table_LED_program.sendCommand(38)
end
rule "Program - Fade - Hellblau"
when Item Magnet_Table_LED_preset_19 received command ON
then
Magnet_Table_LED_program.sendCommand(42)
end
rule "Program - Fade - Lila"
when Item Magnet_Table_LED_preset_20 received command ON
then
Magnet_Table_LED_program.sendCommand(43)
end
rule "Program - Fade - R/G/B"
when Item Magnet_Table_LED_preset_21 received command ON
then
Magnet_Table_LED_program.sendCommand(45)
end
rule "Program - Jump"
when Item Magnet_Table_LED_preset_22 received command ON
then
Magnet_Table_LED_program.sendCommand(56)
end
rule "Program - Jump - R/G/B"
when Item Magnet_Table_LED_preset_23 received command ON
then
Magnet_Table_LED_program.sendCommand(99)
end
rule "Program - Farbe (kein Preset gewählt)"
when Item Magnet_Table_LED_preset_24 received command ON
then
Magnet_Table_LED_program.sendCommand(97)
end
Alexa-Anbindung
Jetzt muss noch einmal die Amazon Alexa App gestartet und eine Suche von neuen Geräten durchgeführt werden.
Danach lassen sich die LED’s auch per Echo-Devices entsprechen schalten.
Fazit
Die Integration der LED-Controller und die Anbindung an das Sprachsystem sind wie immer recht einfach möglich.
Die “Spielereien” für das Kinderzimmer mit den LED-Programmen muss ich noch etwas ausbauen und den Code verbessern (aber erst einmal ist es soweit ausreichend und funktionsfähig).
Mit der gesamten Konfiguration kann man relativ schnell und günstig “smarte LED’s” in sein zu Hause integrieren.
Einziger Minuspunkt war, dass ich einen LED-Controller nicht in das WLAN integrieren konnte (das muss ich noch einmal im Detail testen).
Für welche Einsatzgebiete verwendet Ihr bei euch diverse LED’s im Haus?