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.

[codesyntax lang=”bash”]

sudo hostnamectl set-hostname Aurora

[/codesyntax]

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

[codesyntax lang=”bash”]


127.0.1.1 Aurora

[/codesyntax]

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.

[codesyntax lang=”bash”]


aurora/%prefix%/%topic%/

[/codesyntax]

 

Überwachung

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

Ein einfacher Test:

[codesyntax lang=”bash”]


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

[/codesyntax]

Wenn der Controller startet erhält man folgende Ausgabe:

NodeRED

Installation

Das dauert ca. 10min – geht aber vollautomatisch.

[codesyntax lang=”bash”]


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

[/codesyntax]

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

[codesyntax lang=”bash”]


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

[/codesyntax]

 

Konfiguration

NodeRED wird über eine grafische Oberfläche konfiguriert:

[codesyntax lang=”bash”]


http://aurora:1880/

[/codesyntax]

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.

[codesyntax lang=”bash”]


node-red-dashboard

node-red-contrib-ui-led

node-red-contrib-mapper

…. (siehe oben)

[/codesyntax]

 

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

NodeRED-LED-flows

 

Jetzt die ui aufrufen

[codesyntax lang=”bash”]


http://aurora:1880/ui

[/codesyntax]

 

 

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.

[codesyntax lang=”bash”]


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

rule1 1

[/codesyntax]

 

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.