Josi.de

Monitorhintergrundbeleuchtung mit WLED, Node-RED und SmartNora

Hallo zusammen!

In meinem heutigen Blogbeitrag möchte ich euch einen Einblick in meine neueste Smart-Home-Kreation geben – einen „intelligenten“ (sorry, intelligent ist er nicht wirklich, aber klingt halt besser…) LED-Streifen für meinen Arbeitsplatz, gesteuert über WLED, Node-RED und SmartNora. Dieses DIY-Projekt ermöglicht nicht nur die farbliche Anpassung der Beleuchtung, sondern bietet auch einige clevere Funktionen, die über Google Assistent und sogar bei Feuerwehreinsätzen genutzt werden können.

Projektübersicht:

Von einem anderen LED-Streifen-Projekt hatte ich noch ein Reststück über. Durch Zufall hat dieses Stück mit 66 LEDs genau die Breite von meinen 2 Hauptmonitoren an meinem Arbeitsplatz. Mir kam da die Idee, diesen LED-Stripe nicht unbeachtet in der Ecke liegen zu lassen, sondern ich entschied mich, diesen hinter die Monitore zu kleben und einige weitere Spielereien an meinem Arbeitsplatz zu verwirklichen.

Komponenten:

  • LED-Stripe (WS2812b) mit 66 LEDs
  • ESP8266 (NodeMCU) für die WLED-Firmware
  • Node-RED für die Automatisierung und Steuerung
  • SmartNora für die Integration in den Google Assistenten

Schritt-für-Schritt-Anleitung:

Es gibt zu WLED mit ESP8266 und einem WS2812b LED-Streifen genügend Bauanleitungen im Netz, daher hier nur in groben Zügen die Schritte:

  1. Flashen der WLED-Firmware auf den ESP8266:
    • Verbinde den ESP8266 mit deinem Computer und flashe die WLED-Firmware unter Verwendung von Tools wie esptool oder dem NodeMCU Flasher. Ich persönlich habe ihn direkt vom Browser geflasht, einfacher ging es bald nicht mehr. (https://install.wled.me/)
    • Konfiguriere die WLED-Firmware über die Web-Benutzeroberfläche, um deine LED-Anordnung und Netzwerkeinstellungen anzupassen.
      Bei dem Browser-Install wird auch gleich die WLAN-Verbindung eingestellt.
  2. Node-RED-Flow erstellen:
    • Importiere den Node-RED-Code unter dieser Anleitung in einen neuen Flow.
    • Passe die IP-Adresse in den beiden HTTP-Nodes an die Adresse deines ESP8266 an.
    • Der Flow steuert die Beleuchtung basierend auf den erhaltenen Nachrichten und verwendet SmartNora für die Integration mit dem Google Assistenten. Dafür wird alle 2 Sekunden der LED-Streifen abgefragt, um den aktuellen Status an den SmartNora-Node zu senden (Damit auch in der Google-Home-App der richtige Status dargestellt wird) und sobald etwas per Google Assistent gesagt wird (zum Beispiel „Hey Google, schalte den Stripe ein“ oder „Hey Google, schalte den Stripe auf Tageslicht“, „Ok Google, dimme den Stripe auf 10 Prozent“) oder in der Google Home App etwas geändert wird, wird es an den ESP übermittelt.
  3. Kreative Anwendungen:
    • Binde den Stripe nach belieben in deine anderen Automationen ein, wie bei mir zum Beispiel in der „Stundenzettel-Automatisierung“ oder auch bei einem Feuerwehralarm. Bei letzterem wird bei mir ein Blau-Rotes Blinklicht angezeigt.
    • Leider ist der WLED Node nicht so toll, seit Jahren unmaintained und funktioniert nur noch rudimentär. WLED unterstützt aber auch noch MQTT und die hier verwendete JSON-API.
So sieht mein Feuerwehralarm aus, natürlich bewegen sich Rot und Blau noch.
[{"id":"982a35011ca617f1","type":"tab","label":"WLED","disabled":false,"info":"","env":[]},{"id":"b2c3330466165617","type":"noraf-light","z":"982a35011ca617f1","devicename":"Stripe","lightcolor":true,"brightnesscontrol":true,"commandonlycolor":false,"turnonwhenbrightnesschanges":true,"passthru":false,"errorifstateunchaged":false,"statepayload":true,"brightnessoverride":"","roomhint":"Arbeitsplatz","name":"","colortype":"rgb","nora":"f2cc2c3f04e1b1f1","topic":"","onvalue":"true","onvalueType":"bool","offvalue":"false","offvalueType":"bool","temperaturemin":"2700","temperaturemax":"5500","twofactor":"off","twofactorpin":"","filter":false,"x":650,"y":80,"wires":[["9e088fcdb4f0f7a1"]]},{"id":"9e088fcdb4f0f7a1","type":"function","z":"982a35011ca617f1","name":"function 31","func":"function decimalToRgb(decimal) {\n  return [\n    (decimal >> 16) & 0xff,\n    (decimal >> 8) & 0xff,\n    decimal & 0xff,\n  ];\n}\n\nif (msg.payload.on === true) {\n    msg.payload = {\n        bri: Math.floor(msg.payload.brightness * 2.55),\n        seg: {\n          col: [\n            decimalToRgb(msg.payload.color.spectrumRgb),\n            [0, 0, 0],\n            [0, 0, 0]\n          ],\n          fx: 0\n        },\n        on: true\n    };\n} else {\n    msg.payload = {\n        on: false\n    };\n}\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":810,"y":80,"wires":[["7cff9906cf18d9b3"]]},{"id":"7cff9906cf18d9b3","type":"http request","z":"982a35011ca617f1","name":"","method":"POST","ret":"txt","paytoqs":"ignore","url":"http://192.168.2.86/json","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":990,"y":80,"wires":[[]]},{"id":"3e64aa71edf78099","type":"inject","z":"982a35011ca617f1","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"2","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":130,"y":80,"wires":[["f0ebadd83af419d8"]]},{"id":"f0ebadd83af419d8","type":"http request","z":"982a35011ca617f1","name":"","method":"GET","ret":"obj","paytoqs":"ignore","url":"http://192.168.2.86/json/state","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":290,"y":80,"wires":[["56db2381844228b2"]]},{"id":"56db2381844228b2","type":"function","z":"982a35011ca617f1","name":"function 32","func":"msg.payload = {\n    on: msg.payload.on,\n    brightness: Math.floor(msg.payload.bri/2.5),\n    color: {\n        spectrumRgb: (msg.payload.seg[0].col[0][0] << 16) + (msg.payload.seg[0].col[0][1] << 8) + (msg.payload.seg[0].col[0][2])\n    }\n};\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":490,"y":80,"wires":[["b2c3330466165617"]]},{"id":"f2cc2c3f04e1b1f1","type":"noraf-config","name":"nora config","group":"Sonstiges","twofactor":"off","twofactorpin":"","localexecution":true,"structure":"My Home","storeStateInContext":false,"disableValidationErrors":true,"sendDeviceNameAndLocation":false}]

Fazit:

Mit dieser DIY-LED-Beleuchtung habe ich nicht nur meinen Arbeitsplatz aufgewertet, sondern auch eine unterhaltsame und nützliche Smart-Home-Lösung geschaffen. Die Kombination von WLED, Node-RED und SmartNora bietet viele Möglichkeiten zur Anpassung und Automatisierung. Falls ihr Fragen oder Anregungen habt, teilt sie gerne in den Kommentaren!

In diesem Artikel sind Partnerlinks enthalten. Durch einen Klick darauf ge­lan­gt ihr direkt zum Anbieter. Solltet ihr euch dort für einen Kauf entscheiden, erhalten wir ei­ne kleine Provision. Für euch ändert sich am Preis nichts. Partnerlinks haben keinerlei Einfluss auf unsere Berichterstattung.


Beitrag veröffentlicht

in

,

von

Kommentare

Schreibe einen Kommentar

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