Tasmota LED Beleuchtung mit Node-RED steuern

26. Oktober 2019 at 08:59
Print Friendly, PDF & Email

In meinem Haus setzte ich OpenHAB ein. Um jedoch nur ein paar LED Streifen zu steuern, ist dies viel zu mächtig.
Bei einem Bekannten habe ich eine einfache Lösung mit Node-RED umgesetzt.

Die Aufgabe

  • Drei LED-Streifen sollen gemeinsam gesteuert werden können
  • Die Helligkeit soll reguliert werden
  • Die Ansteuerung soll über eine Fernbedienung oder über WLAN erfolgen
  • Eine Zeitschaltung muss umgesetzt werden können

Konzept

Die meisten Produkte brauchen eine Verbindung ins Internet. Oft haben diese seltsame Eigenschaft eine Kommunikation über den Hersteller aufzubauen.
Dies sollte unbedingt vermieden werden.

Die Steuerung sollte über zwei Wege erfolgen. Die Fernbedienung ist schneller zu bedienen als ein Smartphone und für alle Generationen und Besucher zu benutzen. Die Integration in das WLAN bietet aber Möglichkeiten eine Zeitsteuerung zu realisieren; Stichwort “Anwesenheitssimulation”.

Als zentrales Element verwende ich hier MQTT. Hierüber kommunizieren alle Geräte sowie die Zentrale.
Das ist sehr robust – bisher hatte ich in meinem Haus über Jahre hinweg nicht eine fehlerhafte Meldung oder sogar einen Totalausfall.
Weiterhin lässt es sich gut bei der Fehlersuche einsetzen. Da überrascht es nicht, dass praktisch jede Lösung für Hausautomation die Integration von MQTT vorsieht.

Wenn man eine wenig Intelligenz in die Steuerung bringen möchte ist NodRED ein gute Wahl. Komplexe Lösungen können damit auch realisiert werden, aber der Zeitaufwand ist dann enorm und lässt sich dann auch nicht gut warten. Für die vorliegende Aufgabe aber genau richtig.

Hardware

LED-Streifen / LED-Stripes

Ein paar Dinge die man beachten sollte:

  • Farbige LED’s
    Sieht am Anfang sehr cool aus. Gut für Show-Effekte. In einem Haus will das aber wirklich fast keiner.
  • Weiße LED’s
    Es gibt kalt- und warmweiß. Bei dem Kauf auf die Angabe der Farbtemperatur in Kelvin achten, sonst bekommt man etwas, was der Händler für weiß hält.
    Keine RGB-Stripe verwenden, um weiß zu mischen. Entweder LED’s verwenden. die weiß sind oder LED  Streifen mit 4 “Farben”: RGBW.
  • Warmweiß
    Diese “Farbe” wird realisiert, indem man eine kaltweiße LED nimmt und einen Filter davorsetzt. Diese schluckt aber Licht. Daher ist eine warmweiße LED bei gleichem Stromverbrauch dunkler. Im Idealfall gibt der Händler den Lichtstrom (Helligkeit) in Lumen an.
  • LED’s pro Meter
    Es gibt 30, 60,120,240 LED’s pro Meter. Für eine Beleuchtung sind 120/m eine gute Wahl. Sonst wird das zu punktuell. 240 LED’s bei maximaler Helligkeit bringen einen schnell über das Limit was Controller und Netzteil an Strom verarbeiten können.

Controller

Mittlerweile setzte ich überall Module ein, die auf einem ESP8266 basieren. Diese werden mit der Tasmota-Firmware versehen. Tasmota ist auch sehr robust und stabil. Weiterhin hat es eine einfache Web-Oberfläche und MQTT. Diese Controller sind in vielen Varianten erhältlich, die auch sehr preiswert sind. Mit rund 6 EUR pro Modul ist man schon dabei.

Konkret habe ich hier den ARILUX® AL-LC01 genommen. Es gibt auch eine Variante mit einem IR Empfänger.

Zentrale für MQTT, NodeRED

MQTT und NodeRED läuft auf Linux oder Windows. Wenn ein NAS-Laufwerk von Synology vorhanden ist, kann man über ein plug-in den MQTT-Broker dort laufen lassen. Alternativ kann man einen raspberry verwenden. Hier reicht ein pi Zero W schon aus.

Software

MQTT

Installation

Die Installation ist sehr einfach – siehe hier: https://tutorials-raspberrypi.de/datenaustausch-raspberry-pi-mqtt-broker-client/

Der raspberry erhält dann auch einen sprechenden Namen, um nicht die IP-Adresse des Brokers in den Modulen eintragen zu müssen.

sudo hostnamectl set-hostname Aurora

Danach muss /etc/hosts auch geändert werden.

127.0.1.1 Aurora

Optinal: User / Password vergeben: http://www.steves-internet-guide.com/mqtt-username-password-example/

Konfiguration

Die Topics werden im Prinzip durch die Tasmota Firmware vorgegeben. Um verschiedene Bereiche zu trennen, habe ich den full topic erweitert.

aurora/%prefix%/%topic%/

 

Überwachung

Um die MQTT Meldung zu sehen , verwende ich den MQTT Explorer: https://github.com/thomasnordquist/MQTT-Explorer

Ein einfacher Test:

mosquitto_pub -h Aurora -t test_channel -m "Hello Raspberry Pi"

Wenn der Controller startet erhält man folgende Ausgabe:

NodeRED

Installation

Das dauert ca. 10min – geht aber vollautomatisch.

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
sudo systemctl enable nodered.service
cd ~/.node-red

Zusatzpakete über die Shell installieren (alternativ über die Oberfläche (s.u.).

npm install node-red-dashboard
npm install node-red-contrib-ui-led
npm install node-red-contrib-mapper
npm install node-red-contrib-boolean-logic
npm install node-red-contrib-light-scheduler
npm update

 

Konfiguration

NodeRED wird über eine grafische Oberfläche konfiguriert:

http://aurora:1880/

Zuerst installiert man noch drei Zusatzmodule. Oben rechts das Menü aufrufen, dann Einstellungen.
In den Benutzereinstellungen auf den linken Reiter “Palette” gehen. Oben kann man dann suchen.

node-red-dashboard
node-red-contrib-ui-led
node-red-contrib-mapper
.... (siehe oben)

 

Meine Konfiguration kann man dann über das Menü oben rechts importieren.

NodeRED-LED-flows

 

Jetzt die ui aufrufen

http://aurora:1880/ui

 

 

Infrarot Empfänger

In zwei Schritten das Modul mit dem IR-Empfänger konfigurieren.

  1. Gerätetyp auf Generic setzen + Neustart
  2. D2 / GPIO4 mit IRRRecv belegen

In der Konsole legt man eine Regel an. Damit wird der IR code an den MQTT-Broker weitergeleitet.

rule1 on IRreceived#Data do publish aurora/cmnd/ir1/code %value% endon
rule1 1

 

Ein paar Screenshots der NodeRed Konfiguration

Bei mir gibt es diese Konfiguration drei mal , für die drei Lampen.

Ein Teil der Gruppe. Analog hierzu wird auch der Dimmer konfiguriert.