ESP8266ioBrokerioBroker Tutorials

McLighting WS2812 Lichtsteuerung und Integration in ioBroker

In diesem Artikel zeige ich Dir, wie ich einen ESP8266 mit der McLightning Firmware in ioBroker integriert habe. Das McLightning Projekt von Tobias Blum ermöglicht die einfache und komfortable Steuerung von WS2811 und WS2812 LED-Stripes (z.B. NeoPixel) mit einem ESP8266 Mikrocontroller. Neben der individuellen Farbwahl stehen noch zusätzlich Animationen zur Verfügung. An die Integration in die Haus-Steuerung wurde mit umfangreichen Protokoll-Möglichkeiten gedacht (MQTT, REST-API, WebSocket).

Bevor wir loslegen, hier die Liste der verwendeten Materialien:

Im ersten Schritt müssen wir nun die Software-Installation durchführen. Die Installation der Bibliotheken sowie Einrichtung der WLAN-Verbindung ist perfekt in der McLightning-Dokumentation beschrieben, aus diesem Grund verweise ich an dieser Stelle auf die Original-Dokumentation.

Installation und Einrichtung von McLightning

Schaltungsaufbau

Den WS2812b LED-Stripe habe ich für die Steuerung an D4, sowie die Stromversorgung an VIN und GND angeschlossen.

McLightning-Oberfläche

Nach dem wir nun McLightning installiert sowie in unser WLAN eingebunden haben, sollten wir folgende Webseite im Browser angezeigt bekommen. Auf dem Bereich „Wheel“ können wir nun eine beliebige Farbe auf der Skala auswählen.

Unter den Modes können wir den Farbton sowie die Helligkeit der LEDs nochmals ändern oder verschiedene Animationen auswählen. Für die Animationen können wir zudem noch die Geschwindigkeit anpassen.

Integration über ioBroker-Adapter

Im nächsten Schritt werden wir nun McLightning in ioBroker und somit in unsere Haus-Steuerung integrieren. Dazu installieren wir nun einen neuen Adapter in ioBroker. Der Adapter ist aktuell noch nicht im ioBroker Release enthalten, wir müssen ihn daher manuell über folgende Github URL hinzufügen:

https://github.com/instalator/ioBroker.mclighting

Nach dem wir die URL auf der Lasche „Beliebig“ eingegeben haben, können wir mit der Installationen beginnen.

Nach der Adapter-Installation können wir nun nach „mclightning“ suchen und den gefundenen Adapter in ioBroker zu den Instanzen hinzufügen.

Nach der Installation können wir nun die Einrichtung des Adapters beginnen. Hierzu müssen wir die IP des McLightning-Moduls in das Host-Feld eingeben. Als Port wird Port 81 verwendet.

Im nächsten Schritt können wir den Adapter starten.

In den Objekten können wir nun im Ordner „mclightning.0“ die Farbwerte einsehen und verändern.

Über den Datenpunkt „power“ können die LEDs ein- oder ausgeschaltet werden. Der Datenpunkt „brightness“ regelt die Helligkeit der LEDs. Die Geschwindigkeit kann über „speed“ entsprechend eingestellt werden. Der Wertbereich der beiden Datenpunkte geht von 0 bis 255.

Animationen können über den Datenpunkt „fx_mode“ aktiviert werden. Die Animations-ID findest Du in der McLightning Web-Oberfläche vor dem Namen der Animation (in Klammern).

Einzelne LEDs können wir natürlich ebenfalls einfach über den Datenpunkt „single_RGB“ schalten. Dazu muss dem Datenpunkt eine Zeichenfolge in folgendem Format übergeben werden:

<LEDNr> <#HexColor>

Beispiel

1 #FFBF00

Die zweite LED (Null-basierter LED-Index) wird gelb eingefärbt.

Integration über MQTT

Um MQTT als Protokoll zu nutzen, müssen wir bei der Einrichtung von McLightning die MQTT-Verbindungs-Informationen hinterlegt und den ESP8266 somit als MQTT-Client am ioBroker registriert. Wenn wir uns nun die Objekte des MQTT-Adapters in ioBroker ansehen, sollten wir hier den folgenden Bereich sehen:

Für jedes McLightning-Modul wird ein eigener Namen mit dem Namen aus der Konfiguration (McLightning – definitions.h) angelegt. Unterhalb des Namens existieren zwei Datenpunkte („in“ und „out“). Über den Datenpunkt „in“ kann ein Kommando übergeben werden, welches dann von der McLightning-Komponente ausgeführt und verarbeitet wird. Das Ergebnis wird an den Datenpunkt „out“ übergeben. In der folgenden Grafik wird die Funktionsweise aufgezeigt:

Zur Steuerung des McLightning-Moduls stehen einige Kommandos zur Verfügung. In der folgenden Liste habe ich die Befehle kurz erklärt, welche ich am häufigsten einsetze. Eine vollständige Dokumentation kann hier eingesehen werden:

Alle LEDs Farbwert setzen

Mit dem folgenden Befehl werden alle LEDs auf den übergebenen Farbwert eingestellt. Dazu muss ein #-Zeichen gefolgt vom hexadezimale Farbwert angegeben werden. Den Farbwert kannst Du z.B. hier auswählen.

#&lt;hexrgb&gt;;

Einzelne LED Farbwert setzen

Mit dem folgenden Befehl kann eine einzelne LED eingefärbt werden. Dazu wird im ersten Parameter die Nummer die LED angegeben. Im zweiten Parameter wird der Farbwert übergeben.

!&amp;lt;numled&amp;gt;&amp;lt;hexrgb&amp;gt;

Animation aktivieren

Mit dem folgenden Befehl kann eine Animation aktiviert werden. Die Nummer der Animation könnt ihr über die normale McLightning Oberfläche im Bereich „Modes“ einsehen.

/&amp;lt;animation_mode_id&amp;gt;

Geschwindigkeit der Animation einstellen

Mit dem Befehl wird die Geschwindigkeit der Animation verändert.  Der Wertbereich geht von 0 bis 266 (von langsam nach schnell).

?&amp;lt;speed&amp;gt;

Helligkeit einstellen

Mit dem Befehl wird die Helligkeit der LEDs verändert.  Der Wertbereich geht von 0 bis 266 (dunkel nach hell).

%&amp;lt;brightness&amp;gt;
Weitere Informationen

Fazit

Sehr cooles Projekt für die einfache und komfortable Steuerung von LEDs mit dem ESP8266-Mikrocontroller. Durch die Schnittstellen und den Adapter in ioBroker wirklich extrem einfach und schnell in die eigene Haussteuerung integriert. In der Firmware existiert zudem noch eine Integration in Home Assistant, das werde ich mir auch noch ansehen 🙂 Ich nutze den ESP8266 in Verbindung mit dem ioBroker McLightning-Adapter für die Lichtsteuerung im Wohnzimmer, MQTT hatte einige male nicht wirklich zuverlässig funktioniert. Hier muss ich aber nochmals Zeit investieren, evtl. sitzt das Problem auch wo wanders 😉

Ich hoffe euch gefällt dieser Artikel. Über Kommentare unterhalb des Artikels oder per E-Mail freue ich mich wie immer ?

Matthias Korte

Hauptberuflich Software-Entwickler und seit einigen Jahren Smart-Home Fan. Angefangen hat alles mit einem RaspberryMatic und einer schaltbaren Steckdose. Mittlerweile habe ich einige Steckdosen, Sensoren, und Thermostate sowie ioBroker zur Visualisierung im Einsatz.

15 Gedanken zu „McLighting WS2812 Lichtsteuerung und Integration in ioBroker

  • Alfred

    Hi,
    sehr schön erklärt.
    Das hat mir bei meiner Einrichtung sehr geholfen.
    Jetzt stehe ich vor der Herausforderung das in VIS schön darzustellen.

    Antwort
  • Alfred

    Hallo,
    sehr schöne Anleitung.
    Wie bindest Du das in VIS ein? Dazu suche ich noch eine schöne Lösung.
    Alfred

    Antwort
  • LordDuplo

    Hallo,

    danke für die Dokumentation zum Einbinden von WS2812 Strips in ioBroker.
    Wie du die vis bzw. die Steuerung dazu realisiert hat würde auch mich sehr interessieren.

    Antwort
  • Joerg Froehner

    Danke für die Vorstellung dieses Projekts, welches ich 1:1 so umsetzten konnte. Selbst als Anfänger kann ich mit Blockly in Iobroker ganze Effektprogramme abarbeiten lassen, indem mqtt.0.McLighting01/in mit Daten gefüttert wird. Klappt wirklich super gut. Problem habe ich aber mit einem 2. Stripe, den ich in definitions.h McLighting02 genannt habe, anstatt McLighting01. „const char HOSTNAME[] = „McLighting02″; // Friedly hostname“ den Rest habe ich genau so gelassen. Beim starten ist soweit auch alles OK. WLAN Anmeldung, Steuerung über seine IP, oder über den iobroker Adapter klappt wie beim McLighting01. Nur werden keine Datenpunkte im MQTT angelegt und kann somit nicht darüber gesteuert werden. Wie könnte ich vorgehen? Der iobroker MQTT Adapter läuft als Broker/Client auf Port 1883 ohne Benutzernamen, ohne Passwort.

    Antwort
  • Joerg Froehner

    Sorry für die unnötige Fage. Ich habe ihn einfach nochmal über WLAN anmelden lassen und habe die MQTT IP und Port neu eingegeben. (Vielleicht war da etwas falsch). Nun geht auf jeden Fall alles!

    Antwort
  • Markus Rangnick

    Hallo,

    vielen Dank für die super Arbeit. Deine Ausführung ist echt gut und schlüssig.
    Dennoch stoplere ich über eine Frage. Lassen sich über den ioBroker mit McLightning Adapter nur LEDs von 0-99 ansprechen? Es gelingt mir nicht in den dreistelligen Bereich zu kommen. Hast Du einen Tipp?

    Antwort
  • Helmut

    Danke für diesen Artikel.
    Damit habe ich die Steuerung meiner WS2812-Streifen wunderbar gelöst.
    Jetzt habe ich nur das Problen, dass Blau und Grün vertauscht sind.

    Im FAQ vom McLighting/Wiki steht :
    Ändern Sie die Farbreihenfolge, bis der Streifen die richtigen Farben anzeigt (in diesem Beispiel wird GRB zu BRG ).
    WS2812FX-Streifen = WS2812FX (NUMLEDS, PIN, NEO_BRG + NEO_KHZ800);

    In McLighting.ino ist aber die Zeile auskommentiert.

    #include
    // WS2812FX strip = WS2812FX(NUMLEDS, LED_PIN, NEO_GRB + NEO_KHZ800);
    WS2812FX* strip;

    An dieser Stelle brauche ich Hilfe.
    Wo kann ich „NEO_GRB“ ändern?

    Antwort
  • Robbie Zimmermann

    Moin Moin … sorry das ich dich einfach so anschreibe aber ich hänge seit Tagen daran Mc Lightning bei mir in das WLAN zu bekommen… Es wird nix neues unter den WLAN Geräten angezeigt kein ESPxxxx
    oder ähnliches …
    Habe ich in irgend etwas vergessen zu aktivieren im Programmcode, aber ich bin nach Anleitung vorgegangen oder wird etwas vorrausgesetzt.
    Im Voraus besten dank für eine evtl. Hilfe
    Grüße Robbie

    Antwort
  • Kai

    Hi, irgendwie bin ich zu blöd.
    Ich habe die Software geflasht, den Strip an die NodeMCU gelötet, ich komme auch auf das Interface drauf, aber es leuchtet nur die erste LED, mehr nicht.
    wo könnte da der Fehler liegen?

    Danke für den tollen Bericht übrigens

    Antwort
    • Peter

      Genau das gleiche Problem hab ich auch.
      Alles eingetragen wie es gehört aber es leutet nur die erste Led Weiß und das wars.
      Ich finde einfach niemanden der mir helfen kann.
      Auch wird es jetzt schon langsam eng, da es einige Weihnachtsgeschenke werden sollen.

      Antwort
      • Matthias Korte

        Moin Peter,

        wie lange ist der LED-Strip und was für ein Typ ist das? Mir sagt das Problem so leider erst mal nichts, könnte nur evtl. an der Stromversorgung liegen. Kannst Du die McLightning-Oberfläche bedienen, oder hängt die dann auch?

        Antwort
  • Hallo Peter,
    Hast du schon was gefunden wegen der Anzahl der LED´s? Zu Weihnachten wird es eng, aber…

    Hatte das selbe Problem. Je nachdem Version von MCLighting du benutzt, wird die Anzahl der LED´s im Script ODER über den Webbrowser eingestellt. Ich vermute du hast eine relativ neue Version und daher wirst du die Anzahl der LED´s über den Browser einstellen müssen.

    http://www.192.168.?.?/pixelconf?ct=240

    in die Adresszeile des Browsers eingeben und es wird sofort übernommen. IP-Adresse und Anzahl der LED´s bitte vorher anpassen.

    Damit sollte es klappen…

    Antwort
  • McLighting ist super genial. Habe ich seit Jahren im Einsatz!

    Antwort
  • Holger

    Hallo,
    gibt es von Mc Ligthing eine Version, die auf den aktuellen Bibliotheken aufsetzt?
    Ich wollte es gerade mit PlatformIO bauen, da werden mir aber die teilweise recht alten Versionen an Bib. gar nicht mehr zur Verfügung gestellt. Und mit den akt. Versionen bekomme ich Fehlermeldungen beim Übersetzen und Linken.

    Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert