Eine LED-Matrix als Statusanzeige: WLED in Home Assistant für Tür- und Lüftungsmeldungen

von Patrick · · 7 Min. Lesezeit · Automation

Dieser Artikel enthält Affiliate-Links. Kaufst du darüber, bekomme ich eine kleine Provision – für dich ändert sich am Preis nichts. Mehr dazu


Benachrichtigungen aufs Handy sind praktisch, aber manche Dinge will man im Vorbeigehen sehen: Steht die Kinderzimmertür abends noch offen? Ist das Badezimmer fertig gelüftet? Dafür hatte ich lange eine bunte Zigbee-Lampe im Wohnzimmer als Signallicht. Das hat funktioniert, aber es blieb bei Farbe und An/Aus. Seit Kurzem übernimmt eine WLED-Matrix diesen Job, und sie kann deutlich mehr.

Was WLED ist

WLED ist eine freie Firmware für ESP32- und ESP8266-Controller, mit der sich adressierbare LED-Streifen und -Matrizen steuern lassen. Sie bringt eine eigene Weboberfläche, Dutzende Effekte, Presets und eine JSON-Schnittstelle mit. Und sie hat eine offizielle Home-Assistant-Integration, die den Controller automatisch erkennt.

Meine Matrix ist ein Raster aus 32 mal 16 Pixeln. Das reicht für Farben und Effekte und sogar für laufenden Text, nicht aber für Fotos, und das ist auch gut so.

Einbinden in Home Assistant

WLED taucht in Home Assistant meist von allein als erkanntes Gerät auf, ihr müsst die Integration nur bestätigen. Dabei entstehen mehrere Entitäten. Wichtig für mich sind drei:

  • eine Licht-Entität für Farbe, Helligkeit und Effekt,
  • eine Auswahl für Presets („Voreinstellung“), mit der ich gespeicherte Zustände abrufe,
  • ein paar Einstellungen wie Geschwindigkeit und Intensität des Effekts.

Ein Preset in WLED ist ein komplett gespeicherter Zustand: Effekt, Farben, Text, Helligkeit. Das ist der eigentliche Trick. Ich baue den Zustand einmal in der WLED-Oberfläche so, wie er aussehen soll, speichere ihn unter einem Namen und rufe ihn in Home Assistant nur noch auf.

Warum nicht bei Zigbee bleiben?

Ehrlicher Grund: Ich will mein Smart Home Stück für Stück von Zigbee wegbekommen und in Richtung Matter und Thread bewegen (mehr dazu in meinem Artikel Zigbee vs. Matter). Eine RGB-Lampe, die per Zigbee nur Farbe kann, war da ein naheliegender Kandidat zum Ersetzen. WLED läuft über WLAN, braucht keinen Funkstick und ist unabhängig vom Zigbee-Netz. Dazu kommt: Die Matrix kann Dinge, die eine Glühbirne nie können wird.

Anwendungsfall 1: Der Hinweis „Tür steht offen“

Die erste Automation: Wenn die Kinderzimmertür abends offen ist, soll die Matrix das zeigen, aber nicht aufdringlich. Mein Ablauf:

  1. Die Matrix atmet in Rot („Breathe“-Effekt) für einige Sekunden.
  2. Dann läuft ein Text als Laufschrift durch, gespeichert als Preset.
  3. Danach wieder ein kurzes rotes Atmen.
  4. Das Ganze wiederholt sich, solange die Tür offen ist, und nur in einem Zeitfenster am Abend.
  5. Wird die Tür geschlossen, atmet die Matrix kurz grün und geht dann aus.

Die Kernidee in YAML, ohne die Entity-Namen aus meinem Haus:

alias: "Kinderzimmer: Tür-Hinweis"
triggers:
  - trigger: state
    entity_id: binary_sensor.kinderzimmer_tuer
    to: "on"
conditions:
  - condition: time
    after: "18:00:00"
    before: "23:59:59"
actions:
  - repeat:
      while:
        - condition: state
          entity_id: binary_sensor.kinderzimmer_tuer
          state: "on"
      sequence:
        - action: light.turn_on
          target:
            entity_id: light.matrix
          data:
            rgb_color: [255, 0, 0]
            effect: "Breathe"
        - delay: "00:00:05"
        - action: select.select_option
          target:
            entity_id: select.matrix_voreinstellung
          data:
            option: "Kinderzimmer"
        - delay: "00:00:06"
mode: single

Das Preset „Kinderzimmer“ enthält die Laufschrift. Weil repeat mit while bei jedem Durchlauf neu prüft, ob die Tür noch offen ist, endet die Schleife von selbst, sobald sie zugeht. Eine zweite Automation (Trigger „Tür zu“) übernimmt dann das grüne Atmen und schaltet danach aus.

Anwendungsfall 2: Die Lüftung im Bad

Der zweite Einsatz ist unspektakulärer, aber im Alltag fast nützlicher: Eine blau atmende Matrix signalisiert, dass die Badlüftung läuft, oder dass jetzt gelüftet werden sollte. Dafür gibt es bei mir ein Skript, das die Matrix kurz in Blau blinken lässt. Es wird aus der Lüftungsautomation aufgerufen. So habe ich die Logik an einer Stelle, und das Skript kann von verschiedenen Automationen benutzt werden.

Was ich unterwegs gelernt habe

Presets sind unabhängig von Home Assistant. Sie liegen im Controller selbst. Wenn ihr den Controller zurücksetzt oder die Firmware neu aufspielt, sind sie weg. Sichert die Presets deshalb als Datei, bevor ihr etwas an der Firmware ändert. WLED bietet dafür einen Export in der Oberfläche an.

Preset-Slots sind eine knappe Ressource. Ich habe einige Slots mit anderen Spielereien belegt, etwa saisonalen Effekten. Beim Anlegen neuer Presets muss man aufpassen, dass man keinen vorhandenen Slot überschreibt. Ich schreibe mir deshalb auf, welcher Slot wofür gedacht ist.

Alte Geräte hinterlassen Leichen. Wenn ein WLED-Gerät unter einer neuen Adresse oder mit neuem Namen wieder auftaucht, bleibt in Home Assistant gern ein toter Eintrag zurück, der dauerhaft „nicht verfügbar“ ist. Den solltet ihr löschen, sonst verwechselt man in Automationen leicht die alte mit der neuen Entität.

Helligkeit abends. Ein hell leuchtendes Signal im dunklen Flur ist unangenehm. Stellt die Helligkeit in den Presets deshalb lieber niedrig ein. Was tagsüber sichtbar ist, blendet nachts.

Hardware-Hinweis

Für den Einstieg reicht ein ESP32-Board plus LED-Streifen oder fertige Matrix. Ein ESP32-Entwicklungsboard mit USB-C tut es als Controller. Achtet bei vielen LEDs auf ein ausreichend dimensioniertes Netzteil: Jede LED kann bei voller Helligkeit rund 60 Milliampere ziehen, bei 512 Pixeln summiert sich das schnell. Im Betrieb mit gedimmter Helligkeit und überwiegend einfarbigen Effekten liegt der Verbrauch deutlich darunter, aber die Verkabelung sollte trotzdem auf den Worst Case ausgelegt sein.

Fazit

Aus einer bunten Lampe wurde ein richtiges Statusdisplay. WLED ist günstig, die Home-Assistant-Integration ist unkompliziert, und mit Presets lassen sich auch komplizierte Anzeigen mit einem einzigen Aufruf abrufen. Wer ein Signal braucht, das man ohne Handy sieht, findet hier eine Lösung, die sich Stück für Stück ausbauen lässt, vom ersten roten Atmen bis zur Laufschrift.

Kommentare

Fragen, Ergänzungen oder eigene Erfahrungen? Ich freue mich über deinen Kommentar. Zum Kommentieren brauchst du ein kostenloses GitHub-Konto.

Beim Laden werden Daten an GitHub übertragen. Mehr dazu in der Datenschutzerklärung.