14

Fibaro RGBW Modul: Wir bauen eine Z-Wave LED Status Anzeige

by crissxcross24. April 2016

Vor dem Verlassen der Wohnung kurz prüfen ob alle Fenster geschlossen sind, bevor man den Alarm auf scharf stellt: Dank Smart Home mit einem Blick machbar. Noch komfortabler als via Smartphone geht es mit einer Status Anzeige.

Mit der Zeit kann der Blick auf das Smartphone nervig werden um verschiedene Sachen kurzzu überprüfen. Zumindest mir geht das so und zwar immer dann, wenn ich die Wohnung verlasse und via Smartphone prüfen will ob alle Fenster geschlossen sind. Wer weiß, ob es nicht doch regnet während ich weg bin?

In der Homematic Reihe gibt es dafür ein „LED 16 Statusdisplay„. Besonders schick ist das nicht, aber zugegeben – sehr praktisch. Eine Tricolor LED kann via Homematic CCU2 Zentralenverknüpfung die Zustände eines Gerätes / Sensors in den Farben: Grün, Gelb und Rot darstellen. Im Flur angebracht, zum Beispiel so auf einen Blick, welche(s) Fenster noch geöffnet ist.

In der Z-Wave Welt gibt es so etwas (noch) nicht. Warum eigentlich? Es werden Multisensoren mit 6 verschiedenen Messwerten gebaut aber keiner der Hersteller wie Fibaro, Aeon, Swiid, Popp, (..) usw. bekommt es mal hin, ein Plastikdisplay mit bunten Lichtern zu bauen?

Gut, dann bauen wir uns selbst ein LED Status Display!

Wir brauchen:

  1. Fibaro RGBW Modul
  2. 12Volt Netzteil (Gleichspannung)
  3. LED Leuchten mit Vorwiderstand

Installation & Verkabelung

Wie man LED Stripes an den Fibaro LED Streifen abschließt, hatte ich hier schonmal ausführlich beschrieben. Einzelne LEDs an das RGBW Modul anklemmen ist im Grunde nichts anderes: Auf die 4 Ausgangskanäle R ; G ; B und W schließen wir jeweils das Massekabel (schwarz) der einzelnen LEDs an. Auf den 12 / 24VDC Eingang, klemmen wir die Phase des Netzteils und legen dort auch alle (+) Pluspole der LEDs auf. Sollte die Klemme von der Größe her nicht ausreichen, setz einfach eine Lüsterklemme oder eine andere Verteilung davor. Dann natürlich noch die Masse (schwarz) des Netzteils auf GND legen.

Nach einstecken des Netzteils in die Steckdose, sollten (durch einmaliges drücken auf den kleinen Taster am RGBW Modul) die LEDs angehen. Nun kann das RGBW Modul auch an der Fibaro HCL oder Fibaro HC2 Zentrale angelernt werden.

Wenn du nun den (virtuellen) Schieberegler auf der Weboberfläche des Fibaro Home Center bestätigst, müsste je Kanal eine der angeschlossenen LEDs angehen.

Fibaro RGBW Modul

Fibaro RGBW Modul

So lassen sich diese nun natürlich auch via Szenen EIN– und ganz wichtig – auch wieder AUS schalten.

Szene steuert LED Status Anzeige

Nehmen wir noch einmal das Beispiel mit unserem Fenster daher. Dies lässt sich in einer LUA Szene, sowie auch natürlich in einer grafischen Blockszene umsetzen. Bei einer grafischen Blockszene benötigst du 2 Szenen pro Fenster. Eine Szene schaltet die LED EIN, sobald das Fenster geöffnet wird – die zweite Szene schaltet die LED wieder AUS, wenn das Fenster geschlossen wird. LUA bietet hier den Vorteil, dass wir alles in einer Szene zusammenfassen können. Also schauen wir uns zunächst die Lösung via grafischer Blockszene und danach die Lösung in LUA an.

Grafische Blockszene

Grafische Szene Fibaro - Status LED an

Grafische Szene Fibaro – Status LED an

Die oben abgebildete Szene, schaltet die Status-LED (welche am Fibaro RGBW Modul auf dem Kanal „R“ angeschlossen ist) ein, sobald das Fenster geöffnet wird. Als Trigger (ganz oben im Bild) ist der Fenstersensor gesetzt. Nochmal zur Erklärung, weil in unserem Forum häufig Fragen dazu kommen: Der Trigger ist der Auslöser. Er ist dafür verantwortlich, dass die Szene (die wir hier definiert haben) gestartet wird. Wenn sich also der Zustand vom Gerät „Fenster Büro“ ändert, starte die Szene. Wie du im Bild siehst, könnte auch eine Globale Variable ein Trigger sein.

Wenn die Szene „getriggert“ (gestartet) wurde, „liest“ das Fibaro Home Center die Szene von oben nach unten und handelt die Szene mit Ihren Bedingungen ab. In unserem Beispiel heißt das also: WENN das Fenster im Büro geöffnet (ohne das der Alarm geschärft) ist, DANN Schalte die Status LED, Kanal Rot auf 255.

R – definiert hier den Kanal Rot und in das grüne Feld kannst du den Dimmwert der Leuchte setzen. 0 ist aus ; 255 ist volle Helligkeit. 127 wäre dann entsprechend 50% Helligkeit usw…

Fibaro RGBW Modul Status LED

Fibaro RGBW Modul Status LED

Noch ein Hinweis zum Trigger. Wenn du Beispielsweise den Strom des Fibaro RGBW Moduls trennst und danach das Netzteil wieder einsteckst – dann wird die LED ausbleiben, was aber nicht dem aktuellen Fensterzustand entsprechen muss. Erst wenn du das Fenster wieder öffnest oder schließt, wird die Szene getriggert (gestartet) und setzt den LED Status korrekt.

Das gleiche „Problem“ hat auch das Homematic LED 16 Status Display. Umgehen kannst du es ganz einfach – durch einen weiteren Trigger. Wenn du zusätzlich zum Fenstersensor noch Beispielsweise einen Bewegungsmelder nimmst, dann würde die Szene immer gestartet, sobald Bewegung erkannt wird. Heißt also: Wenn sich der Status um Fenster ändert ODER Bewegung erkannt wird, startet die Szene – in welcher dann die Bedingung geprüft wird. Und in der steht ja (siehe Bild oben) WENN Fenster auf: DANN LED an.

Was ist nun, wenn das Fenster geschlossen wird?

Grafische Szene Fibaro – Status LED aus

Klar, wir brauchen eine weitere Szene, denn das Home Center macht nur das, was wir ihm sagen. Bislang sagen wir nur, dass die LED angehen soll, wenn wir das Fenster öffnen. Auch wenn für uns der Umkehrschluss (Licht aus WENN Fenster zu) logisch ist, so müssen wir es dem Fibaro Home Center in einer weiteren Szene sagen. Und diese sieht dann so aus:

Grafische Szene Fibaro - Status LED aus

Grafische Szene Fibaro – Status LED aus

Diese Szene ist analog zur ersten, nur das wir den Gegenzustand als Bedingung definieren, also: WENN Fenster sicher (zu) DANN Stauts LED Kanal R (rot) auf Wert 0 – also aus.

LUA Szene Fibaro – Status LED an / aus

Du siehst, um eine LED anzusteuern, welche mit den Werten AN und AUS uns einen Zustand signalisiert, benötigen wir 2 Szenen. Da wir bis zu 4 LEDs an das Fibaro RGBW Modul anschließen können, benötigen wir dafür laut Adam Riese also 8 Szenen. Das kann schnell unübersichtlich werden. Hier kann uns LUA helfen:

LUA Status LED schalten

LUA Status LED schalten

Genauso wie die grafische Szene, liest das Fibaro Home Center auch die LUA Szene von oben nach unten. Im Endeffekt ist ja auch hinter jeder grafischen Szene eine LUA Szene.

Kleiner Tipp: Wer LUA üben möchte, einfach die grafische Szene welche wir vorhin erstellt haben umwandeln und du wirst viele Elemente finden die wir nun hier in unserem Beispiel in der LAU Szene verwenden.

Wie auch die grafische Szene, muss die LUA Szene getriggert (gestartet) werden. Das definieren wir oben im Kopf unter: %%properties. Hier tragen wir die IDs der Geräte ein, welche durch Ihre Statusänderung die Szene starten sollen. mit „value“ sagen wir dem Home Center, das die Szene gestartet werden soll, durch die Statusänderung des Gerätes / Sensors. Würden wir Beispielsweise wollen, dass die Szene durch eine Energiemesssteckdose gestartet wird, wenn sich der Verbrauch des angeschlossenen Gerätes ändert – so würden wir hinter die ID „Power“ anstelle „value“ schreiben. Aber nun schweifen wir ab…

Du siehst im Kopf auch noch %%globals. Wie vorhin in der grafischen Szene gesehen, können wir natürlich auch die LUA Szene bei Änderung einer globalen Variable starten. Hierzu einfach den Namen der Variable unter %%globals eintragen.

In meinem Beispiel starte ich also die LUA Szene WENN mein Büro Fenster (ID 932) geöffent oder geschlossen wird ODER wenn mein Wohnzimmer Fenster (ID 585) geöffnet bzw. geschlossen wird.

Wenn die Szene durch weitere Fenstersensoren getriggert (gestartet) werden soll, dann trage diese entsprechend unter %%properties ein.

Wenn also eines der beiden Fenster geöffnet bzw. geschlossen wird – sich also dessen Status (Wert) verändert, dann beginnt das Fibaro Home Center das Skript von oben nach unten zu lesen und prüft die Bedingungen durch. Diese definieren wir mit „if“ , sagen also: WENN …. danach folgt ein ( tonumber(fibaro:getValue(932, „value“)) > 0 ) . Mit dem tonumber formatieren wir den Wert, welchen wir gleich vom Sensor zurückbekommen. Der Fenstersensor gibt entweder den Wert „0“ (geschlossen) oder „1“ (offen) zurück. Damit das Homecenter dies auswerten, also mit einem mathematischen Vergleich vergleichen kann, muss der Wert von einem String in eine Zahl gewandelt werden. Das passiert mit der Formatierung: „tonumber„.

Danach kommt der Befehl: get:value -> also, gebe mir den Wert von: XXX aus. Hier folgt die ID des entsprechenden Fensterkontakts, in meinem Fall 932 (Büro Fenster). Diesen Wert vergleichen wir jetzt, indem wir fragen: Ist dieser Wert größer (>) als 0 ? Wenn das Fenster geöffnet ist, bekommen wir den Wert „1“ zurück, der Wert ist größer als 0 und die Aussage ist wahr.

Mit dem darauffolgenden „then“ sagen wir : DANN mache folgendes:

fibaro:call(921, „setR“, „255“) -> Schalte den Kanal Rot (setR) des Gerätes 921 (ID des Fibaro RGBW Moduls) auf den Wert 255, also schalte es ein.

Wie vorhin in den grafischen Szenen beschrieben, müssen wir natürlich auch definieren was passieren soll, wenn diese Bedingung nicht zutrifft. Das können wir einfach mit else machen – das bedeutet Ansonsten: – und definieren einen Befehl. Hier würde in jedem Fall der folgende Befehl ausgeführt werden, wenn die Bedingung von „if“ nicht zugetroffen hat.

Ich verwende hier im Beispiel das elseif – in welchem ich wiederum eine weitere Bedingung abfrage, die da lautet: ( tonumber(fibaro:getValue(932, „value“)) == 0. Auch hier hole ich mir den Wert des Fenstersensors „Büro“ und wandle diesen mit „tonumber“ in eine Zahl um und vergleiche diese mit 0. Ist das Fenster geschlossen, gibt es den Wert zurück. 0 == 0 die Aussage ist wahr und definiere auch hier wieder mit „then“ was passieren soll: fibaro:call(921, „setR“, „0“ -> den Kanal rot des Fibaro RGBW auf 0 setzen.

Status LED zeigt geöffnetes Fenster an

Status LED zeigt geöffnetes Fenster an

Wer sich über Fibaro Debug wundert, hiermit gebe ich nur eine Textzeile unten im Konsolenfenster aus um mein „Kunstwerk“ während der Arbeit zu prüfen.

Wenn ich jetzt weitere Fenster prüfen möchte, dann kann ich diesen gesamten Teil kopieren und darunter setzen. Denn wie wir wissen, liest das Home Center das Script von oben nach unten und prüft alle Bedingungen. Hier dann natürlich entsprechend die IDs der Fensterkontakte ändern und natürlich in der Aktion auch den Farbkanal des RGBW Moduls – denn du willst ja sicherlich, das bei dem Fenster im Wohnzimmer eine andere LED eingeschaltet wird, als wenn du das Fenster im Büro öffnest – oder ;-)

Oh! Warum taucht denn im Debug zeitgleich die Prüfung auf, ob Büro oder Wohnzimmer Fenster geöffnet?

Wie beschrieben startet der Trigger die Szene, welche dann von oben nach unten gelesen wird. In dem „if“ und in dem Teil des „elseif“ definieren wir für jeden möglich eintretenden Zustand eine Aktion. Licht an & Debug oder Licht aus & Debug. Somit ist es egal welches Fenster den Status ändert, dass Home Center prüft alle Zeilen im Script und führt die entsprechende Aktion aus – natürlich auch den Debug. Wenn du als Trigger also Beispielsweise einen Bewegungsmelder nutzen würdest, würde immer – sobald Bewegung erkannt oder der Bewegungsmelder zurück auf „keine Bewegung“ schaltet – das Home Center alle Fensterkontakte in der Szene prüfen.

Du siehst, eigentlich haben wir hier nichts anderes als einen EIN – & Ausschalter gebaut, das entscheidende ist nur zu Verstehen, was ein Trigger macht und wozu die Bedingungen in einer Szene sind. Ich hoffe mit diesem kleinen Beispiel das Thema „Trigger“ noch ein Stück verständlicher gemacht zu haben. Noch mehr zum Thema Trigger gibt es in Daniels Post hier: Fibaro HomeCenter-Einsteigerguide Teil 2: Trigger einer Szene

Hier noch das Script zum Kopieren und nachbauen:

LED Status Anzeige bei Bewegung

Noch ein kleiner Lifehack: Mein Büro ist zwar im gleichen Haus wie unsere Wohnung, nicht aber direkt in unsere Wohnung eingebunden. Daher möchte ich immer sehen, sobald „Bewegung“ in unserer Wohnung ist. So sehe ich zum Beispiel, wenn meine Freundin oder unser Sohn nach Hause gekommen – oder der das Bad besetzt ist. Hierfür nutze ich Daniels Script aus dem Post: Kleine LUA Scripte Teil 5: Bewegung im Raum erkennen.

Praktischerweise hat er Platz gelassen für eigene Aktionen, die ausgeführt werden sollen wenn Bewegung erkannt wurde und auch einen Teil für Aktionen, die ausgeführt werden sollen wenn keine Bewegung mehr erkannt wird:

Hier kannst du ganz einfach die Aktion einfügen: LED einschalten oder LED ausschalten. Das sieht dann so aus:

Weitere Ideen

Natürlich geht das nicht nur mit einzelnen, einfarbigen LEDs – so kannst du auch ein LED Stripe anschließen, um so Beispielsweise den Status deines Alarmpanels zu signalisieren: Rot = scharf, Gelb = Hüllschutz und grün = entschärft. Oder um bei unserem Beispiel mit den Fenstern zu bleiben: Rot – eines der Fenster ist noch offen, Gelb = eines der Fenster ist noch angekippt und grün für: Alle Fenster sind zu.

Ich bin auf eure Ideen gespannt! Wofür würdest – oder wirst du die LED Status Anzeige einsetzen? Natürlich muss deine Status LED Anzeige nicht so hässlich bleiben wie meine. Zeig her was du daraus machst! Ob LEDs in Acryl Glas, auf gebürsteten Aluminium oder auf einem Holzbrett – ich bin auf deine Status LED Anzeige gespannt! Lade dein Bild einfach mit der kostenfreien siio iOS oder Android App hoch – Alle eingehenden Bilder füge ich hier dem Artikel an!

siio-App
About The Author
crissxcross
crissxcross
Chris, Gründer und Blogger von siio. Gelernter IT-Systemelektroniker, seit vielen Jahren beruflich als Produktmanager im Smart Home unterwegs. Technikverliebter Familienvater, Apple Fan. Nach einigen Jahren Stadtleben wieder froh auf dem Land zu sein.
14 Comments
  • Hoggle
    Hoggle
    24. April 2016 at 17:28

    Cool.
    Eine solche Anzeige ist sehr nützlich und ich frage mich auch schon, warum die Hersteller so etwas nicht bereitstellen.
    Leider habe ich in der Nähe meiner Haustür kein Strom, so dass der RGBW leider schon mal weg fällt.
    Und das Problem mit der „Verpackung“ ist natürlich ein Bastellherausforderung…

    VG Hoggle

  • knallfrosch
    knallfrosch
    25. April 2016 at 9:31

    Hi,
    da ich das 16er LED in Verbindung mit einer Homematic bis vor einem Jahr im alten Haus im Einsatz hatte, bin ich seit längerem auf der Suche nach etwas ähnlichem. Gerade die Tage hatte ich schon im Forum gefragt, ob man nicht bspw. auch einen Wallplug dafür einsetzen kann. Da hat man dann ja gleich mehrere Farben zur Auswahl und das passt halbwegs schick und ohne Kabel in den EIngang – ich habe glücklicherqweise direkt neben ´nem Androis Tab an der Wand im Eingangsbereich eine Steckdose in guter Höhe. Jetzt fehlt mir noch ein Fensterkontakt und etwas Zeit, um das an den Start zu bringen.
    Danke und Gruß!

  • tobias
    26. April 2016 at 14:03

    Hallo zusammen,

    Noch staune ich ja hier über die Möglichkeiten und konnte mich leider noch nicht durchringen den entsprechenden Investitionsantrag bei meiner Finanzchefin stellen, versuche aber auf dem Laufenden zu bleiben und dann doch irgendwann mal zuzuschlagen.
    Daher möchte ich mich zu diesem Thema auch kurz einbringen, da ich das Thema hör im Forum schon mal vor längerer Zeit angesprochen hatte.

    Ich habe bisher leider ebenfalls noch nichts vergleichbares gefunden und finde die hier gezeigte Lösung zumindest für die Bastler unter uns als Alternative.

    Aber evtl. solltet ihr mal hier einen Blick drauf werfen. Das finde ich extrem interessant, da auch kein externer Stromanschluss erforderlich ist.

    https://www.getseenote.com

    Gruß

    Tobias

  • BuFisch
    30. April 2016 at 8:10

    ….wozu muss ich mir etwas basteln um zu wissen ob alle Fenster und Türen geschlossen sind?
    das sollte jeder gute Smarthome Controller von Haus aus können.
    ich habe VeraLite und da habe ich 4 verschiedene Modi um mich informieren zu lassen was in meinem Haus vor sich geht.
    Wenn ich das Haus verlasse stelle ich auf Away und bekomme sofort die Meldung wenn ein Fenster oder eine Tür offen ist.
    Ich kann mir die Zustände wahlweise als Text(Standard) oder als Sprachmeldung(Plugin) schicken lassen.
    http://support.getvera.com/customer/portal/attachments/310057
    Aus meiner Sicht sind die Hersteller der SmartHome Controller hier in der Pflicht. ;-)

  • BuFisch
    30. April 2016 at 22:28

    Hi boomax,
    das habe ich schon verstanden;)
    nur weiß ich nicht welches Fenster oder welche Tür offen ist
    …mir genügt ein Blick auf meine Meldung, die ich bekomme wenn ich auf Away schalte, um zu wissen was noch offen ist.
    Habe mein Tab mit ImperiHome und VeraAlerts an der Tür;)

    Schade das man hier nichts zu Vera Smart Control erfahren kann
    Gruß

  • BuFisch
    1. Mai 2016 at 8:45

    leider fehlt mir echt die Zeit zum bloggen, bin beruflich sehr eingespannt. :(

    Vera Plus ist ein sehr fähiger Smartcontroller, hier paar Eckdaten:
    Hardware
    CPU: 880MHz MIPS SoC
    Flash Memory: NAND 128MB
    Memory: DDR3 256MB
    Z-Wave: Z-Wave Plus
    ZigBee: HA 1.2
    Bluetooth: 4.0 + BLE
    Wi-Fi: 802.11 a/b/g/n/ac
    USB Port: USB 2.0
    WAN Port: Gigabit Ethernet

    Dimensions
    7.71in x 5.00in x 1.33in (HxWxD)

    Certifications
    FCC, CE, RoHS, Z-Wave Plus
    http://getvera.com/controllers/veraplus/

    Gruß

  • bieer
    29. März 2018 at 12:34

    Hallo zusammen,
    -wir bauen eine LED Status Anzeige- hat mir gefallen, es nachzubauen mit einer Abwandlung, auch wg der Übersichtlichkeit. Ich möchte die Info auf dem Tableau nur pro Zimmer. Jetzt habe ich im Schlafzimmer zB 3 Fenster, die nur melden sollen, wann sie geschlossen bzw geöffnet sind. Dazu habe ich folgendes geschrieben, was aber nicht klappt, die LED geht an aber nicht mehr aus:

    if ( tonumber(fibaro:getValue(112, „value“)) > 0 ) or
    ( tonumber(fibaro:getValue(116, „value“)) > 0 ) or
    ( tonumber(fibaro:getValue(120, „value“)) > 0 )
    then
    fibaro:call(177, „setB“, „255“)
    fibaro:debug(‚Schlafzimmer OG Fenster sind offen‘)

    elseif

    ( tonumber(fibaro:getValue(112, „value“)) > 0 ) and
    ( tonumber(fibaro:getValue(116, „value“)) > 0 ) and
    ( tonumber(fibaro:getValue(120, „value“)) > 0 )

    then
    fibaro:call(177, „setB“, „0“)
    fibaro:debug(‚Schlafzimmer OG Fenster sind geschlossen‘)
    end

    Weiss vielleicht jemand eine Lösung?
    Gruß
    bieer

  • bieer
    29. März 2018 at 12:40

    Hallo, bin bisschen blöd – natürlich klappt es: Habe vergessen die „and“ Funktionen mit == 0 statt >0 auszustatten. Jetzt beim Lesen ist es mir aufgefallen.
    Sorry
    bieer

  • bieer
    24. April 2018 at 16:38

    Hallo zusammen,
    hier mal meine „1-Blick-Azeige“, nachgebaut und mit Script von Chris ((danke) versehen. Funst bestens und wurde von der Familie angenommen.
    [img]http://up.picr.de/32493943bb.jpg[/img]

    [img]http://up.picr.de/32493944ww.jpg[/img]

    VG bieer

  • bieer
    30. November 2018 at 17:19

    Hallo zusammen, neuer Versuch, muss natürlich heißen:

    http://up.picr.de/32493943bb.jpg

    http://up.picr.de/32493944ww.jpg

    VG bieer

Leave a Response