WS2812 LED-Stripe mit FHEM steuern

Für die einfache Steuerung von RGB-Stripes gibt es mehrere Möglichkeiten. Entweder man schließt sie direkt an den Raspberry an oder man verwendet diverse Controller, wie zum Beispiel die WifiLight-Controller.

In diesem Beitrag möchte ich euch zeigen, wie die beliebten WS2812-LED-Stripe steuert. Der Vorteil dieser Stripes ist die Möglichkeit jede einzelne LED getrennt steuern zu können. Dies erfordert dementsprechend etwas mehr Software als die einfachen LED-Stripes.

In diesem Beitrag zeige ich euch zwei Möglichkeiten WS2812-Stripes über FHEM steuern zu können. Beide Möglichkeiten bauen auf ein funkbasierte Steuerung auf und ermöglichen somit die Positionierung des LED-Stripes getrennt vom Raspberry.

BTF-LIGHTING 1M 60 LEDs/Pixels/m WS2812B Schwarz PCB RGB...
BTF-LIGHTING Teachnology Co., Limited - Werkzeug
ab 24,99 EUR

Letzte Aktualisierung am 17.11.2019 / Affiliate Links / Bilder von der Amazon Product Advertising API

Vorraussetzungen

Damit das Flashen später problemlos funktioniert müssen diverse Treiber und Bibliotheken eingebunden werden.

ESP8266-Boardtreiber

Die Treiber für den NodeMCU (ESP8266) können direkt unter der Arduino IDE installiert werden. Wie genau diese funktioniert könnt ihr in meinem Blogbeitrag nachlesen.

Diverse Bibliotheken

Für die zweite Möglichkeit mit ESP Easy werden noch zusätzliche Bibliotheken benötigt. Diese könnt ihr einfach über die Arduino IDE einbinden – „Sketch / Bibliothek einbinden / Bibliotheken

Folgende Bibliotheken müssen installiert werden:

  • FastLED von Daniel Garcia – Version 3.1.6
  • NeoPixelBus by Markung von Michael C. Miller – Version 2.2.8

ESPEasy

Möchtet ihr den Stripe über ESPEasy steuern, so müsst ihr natürlich die aktuellste ESPEasy-Version in euren Sketch-Ordner kopieren.

Dazu einfach die aktuelle Version von ESPEasy hier herunterladen. Dann alle Bibliotheken im Ordner „lib“ in Ordner „libraries“ in den Sketch-Ordner kopieren und den Ordner „src“ in „ESPEasy“ umbenennen und ebenfalls in den Sketch-Ordner kopieren.

Des Weiteren muss in FHEM das benötigte ESPEasy-Gateway eingerichtet werden.

LED-Stripe anschließen

Je nach Länge des Stripes bzw. je nach Anzahl der LEDs wird ein externes Netzteil benötigt. Im Schnitt kann man sagen, dass eine LED bis zu 60mA benötigt (Farbe Weiß). Achtet darauf, dass bei einem externen Netzteil, der Controller und der LED-Stripes gemeinsam an GND angeschlossen werden.

Die Datenleitung kann direkt an den Controller angeschlossen werden. Info: Bei Verwendung von ESP Easy muss die Datenleitung an GPIO2 angeschlossen werden. Eine gute Anleitung, wie ihr den Stripe anschließt findet ihr hier.

Möglichkeit 1 – Modul LEDStripe

Die erste Möglichkeit baut auf das Modul LEDStripe vom Forums-Mitglied „swhome“. Ursprünglich geplant für ein Arduino mit einem Ethernet-Shield lässt sie die Software nun auch direkt auf ein ESP8266-Board flashen. Ich persönlich habe den NodeMCU verwendet. Selbstverständlich kann auch ein WeMos-Board oder ähnliches verwendet werden.

Sale
AZDelivery NodeMCU Lua Amica Modul V2 ESP8266 ESP-12E WIFI...
AZDelivery - Elektronik
6,99 EUR - 0,70 EUR ab 6,29 EUR

Letzte Aktualisierung am 17.11.2019 / Affiliate Links / Bilder von der Amazon Product Advertising API

Software

Die Software für den NodeMCU kann auf GitHub heruntergeladen werden. Die benötigten Dateien liegen im Ordner „Arduino / httpledstripe_esp“. Kopiert am besten den kompletten Ordner „httpledstripe_esp“ in euren Arduino-Sketch-Ordner. Öffnet ihr nun mit der Arduino IDE die Datei „httpledstripe_esp.ino“ öffnen sich in der Arduino nun die beiden benötigten Datei.

Hier müsst ihr nun auch schon die ersten Anpassungen vornehmen. Zum Einen die WLAN-Einstellungen. Zum Anderen die Konfiguration des LED-Stripes. Es ist möglich bis zu zwei Stripes zu definieren. Möchtet ihr nun einen Stripe verwenden, so setzt die Daten für den zweiten Stripe einfach auf Null.

Nachdem ihr die Einstellungen vorgenommen habt, könnt ihr das Programm auf eure Board flashen. Stellt dafür zunächst die korrekten Borad-Daten unter „Werkzeuge“ ein.

Definition in FHEM

Die Definition in FHEM geschieht über das Modul „LEDStripe“ und die IP-Adresse des Boards.

define LEDStripe ip_address

Die IP-Adresse könnt ihr am besten mit einem Blick auf eure Router-Seite herausfinden.

Solltet das Modul „LEDStripe“ noch nicht installiert sein, so könnt ihr dies mit folgendem Befehl machen:

update all https://raw.githubusercontent.com/sw-home/FHEM-LEDStripe/master/controls_ledstripe.txt

Über diverse Set-Befehle kann man nun die LEDs steuern. Mehr Infos und eine Auflistung der möglichen Befehle findet ihr im dazugehörigen Forums-Beitrag.

Möglichkeit 2 – Plugin für ESPEasy​

Die zweite Möglichkeit ist der Einsatz eines Plugins für ESP-Easy. Nach meinem Empfinden sind durch dieses Plugin ein paar mehr Einstellungsmöglichkeiten und Konfigurationen des LEDs möglich. Des Weiteren können dank ESP Easy auch noch weitere Sensoren an das Board angeschlossen werden.

Das Plugin „NeopixelBusFX“

Das benötigte Plugin könnt ihr auf GitHub herunterladen. Neben der benötigten Plugin-Datei „_P124_NeoPixelBusFX.ino“ findet ihr bereits zwei vorkompilierte bin-Datei für 1024 und 4096kb-Boards. Ich empfehle euch jedoch, selber über die Arduino IDE zu kompilieren, da ihr so sicher gehen könnt, dass ihr alle aktuellen Bibliotheken einbindet. Wie ihr ein Plugin zu ESP Easy hinzufügt, könnt ihr auf meinem Blogbeitrag nachlesen.

Nach dem Einbinden und dem Flashen könnt ihr mit der Einrichtung des Plugins beginnen.

Plugin einrichten und LED-Stripe konfigurieren

Bevor der eigentlich LED-Stripe eingerichtet wird, solltet ihr unter „Config“ einen eindeutigen Namen vergeben.

Des Weiteren muss unter „Controllers“ die Verbindung zu FHEM eingerichtet werden.

Unter „Devices“ kann nun der LED-Stripe über das Plugin „NeoPixelBusFX“ eingerichtet werden.

Wichtig ist die Vergabe eines Namen, sowie die Angabe der LED-Anzahl. Wurde das Devices eingerichtet und in FHEM „autocreate“ aktiviert, so wird in FHEM automatisch das entsprechende FHEM definiert.

Definition in FHEM

Das durch „autocreate“ automatisch eingerichtete Device sollte wie folgt aussehen:

Damit nun bei den diversen Set-Befehlen das NeoPixelBusFX-Plugin angesprochen wird, müssen zwei Attribute gesetzt werden:

attr WZ_LautsprecherRechts_WS2812 mapLightCmds nfx
attr WZ_LautsprecherRechts_WS2812 parseCmdResponse nfx

Nun könnt ihr über die Set-Befehle den LED-Stripe steuern. Eine Übersicht aller möglichen Befehle findet ihr auf der GitHub-Seite des Plugins.

Mehr Infos zum Plug könnt ihr im dazugehörigen FHEM-Forums-Beitrag nachlesen.

Wer sich über den Namen wundert, ich habe den Stripe in meinen Selbstbau-Lautsprecherständer eingebaut.

9
Hinterlasse einen Kommentar

avatar
Fotos und Bilder
 
 
 
sonstiges Dateiformat
 
 
 
4 Comment threads
5 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
5 Comment authors
1LeonChristophHannesDanielTobias Friedrich Recent comment authors
  Subscribe  
neuste älteste beste Bewertung
Benachrichtige mich zu:
Tobias Friedrich
Gast
Tobias Friedrich

Hallo,

vielen Dank für deinen Beitrag. Ich würde das Modul gerne nutzen, bekomme aber folgende Fehlermeldung:
„Cannot load module LEDStripe“ wenn ich „define LED1 LEDStripe 192.168.178.48“. Hast du dazu einen Tipp für mich?

Beste Grüße Tobias

Tobias Friedrich
Gast
Tobias Friedrich
Tobias Friedrich
Gast
Tobias Friedrich

Ja, ich hab sogar den raspberry durchgestartet

Hannes
Gast
Hannes

sudo apt-get install libswitch-perl
Dann sollte es gehen.

Tobias Friedrich
Gast
Tobias Friedrich

Danke das hat geklappt!

Tobias Friedrich
Gast
Tobias Friedrich

Hallo,

Dank deines Beitrages hab ich mich jetzt mal an ESP Easy gewagt und es hat auch fast alles wie beschrieben funktioniert. Ich hab dein *bin -file auf einen NodeMCU geflasht und die notwendigen Konfigurationen in Fhem und dem Node vorgenommen. Der LED Stripe wurde auch automatisch in Fhem entdeckt. Aber dann:

1. Ich kann den Stripe nicht steuern (Ein-Aus funktioniert nicht)

2. Beim ändern der Farbe taucht folgende Fehlermeldung auf: „fhemweb_colorpicker.js line 85: TypeError: cmd is not a function. (In cmd (rgb)‘, cmd is undefined“

Gibt es damit Erfahrungen?

Beste Grüße Tobias

Christoph
Gast
Christoph

Hallo,

unterstützt das Plugin auch die WWRGB 5050 Streifen?

Ich benutzte Fhem und mit gefallen die Wemos D1 Mini Boards gut.

Danke und Gruß
Christoph

P.S.:

Könntest du mir diese Schritte näher erläutern:

*
Dazu einfach die aktuelle Version von ESPEasy hier herunterladen. Dann alle Bibliotheken im Ordner „lib“ in Ordner „libraries“ in den Sketch-Ordner kopieren und den Ordner „src“ in „ESPEasy“ umbenennen und ebenfalls in den Sketch-Ordner kopieren.
*

1Leon
Gast
1Leon

Hi, danke für dein Beitrag, hat alles auf Anhieb funktioniert 🙂

nun bin ich dabei, das Gerät in Alexa mit einzubunden, was auch funktioniert. Ich kann alle Befehle sagen mit
Schalte auf rot/gelb/Blau
An / aus
Helligkeit auf … %

Nur das Nfx hat ja noch mehr zu bieten wie die rainbow funktion, die ich irgendwie mit Alexa nicht eingebunden kriege. Hat da jemand eine Idee?

Liebste Grüße Leon