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. 

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

Letzte Aktualisierung am 14.11.2018 / 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.

Letzte Aktualisierung am 14.11.2018 / 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 <name> 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.

4
Hinterlasse einen Kommentar

avatar
Fotos und Bilder
 
 
 
sonstiges Dateiformat
 
 
 
1 Comment threads
3 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
DanielTobias 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