Smarthome

Seit Jahren beobachte ich den Smarthome Markt, hatte 2019 den Würfel von homee im Focus, vorher auch einen erfolglosen Versuch mit Raspberry Pi und fhem, aber das war mir alles zu kompliziert. Ein Versuch mit OpenHAB auf einem Raspberry Pi endete Anfang 2020 trotz einiger Erfolge, intelligente Steckdosen, Lampen und Schalter zusammen zu bringen. Die Konfiguration und letztendlich die Regeln waren mir einfach zu komplex und undurchsichtig. Die Komponenten waren aber nunmal schon vorhanden, so suchte ich eine Alternative möglichst auf Raspi Basis.

Seit April 2020 setze ich Node-RED als Smarthome Steuerung ein mit folgenden Komponenten:

  • Raspberry Pi 3b mit Sense HAT Modul und Gehäuse von Thingiverse aus dem 3D-Drucker
  • Mosquitto MQTT Broker mit zwei Konfigurationen getrennt für internen und externen Zugriff
  • Zigbee CC2531 USB Stick mit zigbee2mqtt Firmware für MQTT Anbindung aller Zigbee Geräte
  • Enocean USB 300 Stick
  • diverse IKEA Tradfri Lampen, Schalter und Dimmer (Zigbee)
  • diverse WLAN Steckdosen von Gosund und Maxcio mit Tasmota-Firmware geflasht, damit auch MQTT-Anbindung
  • Schalter von Shelly für parallelen Einsatz des bisherigen Schalters und Ansteuerung per WLAN (ab der Shelly Firmware 1.3 geht auch schon MQTT, aktuell ist Firmware 1.7)
  • NoName Touch-Schalter, geflasht mit Tasmota Firmware (WLAN)
  • Aqara Temperatur- und Luftdrucksensor (Zigbee)
  • Aqara Türsensor (Zigbee)
  • Hoppe Fenstergriff mit Prüfung der Griffposition (Enocean)
  • Eurotronic Comet Dect Thermostate mit Anbindung an die bestehende AVM Fritzbox 7590 (Dect)
  • AVM FRITZ!DECT 200 Steckdosen (Dect)
  • AVM FritzPowerline 546 Adapter (schaltet die Steckdose über die Fritzbox)
  • RM mini mit Tasmota Firmware zum Anlernen und anschließend Ansteuern von Geräten mit Infrarot-Signalen, außerdem zur Steuerung von Node-RED mit fast beliebigen IR-Fernbedienungen (IR)
  • Anbindung von Telegram für Statusmeldungen und auch zum Steuern von Geräten, außerdem RiveScript für einen einigermaßen intelligenten Chatbot
  • Anbindung eines E-Mail-Kontos für Statusmeldungen und auch zum Steuern von Geräten
  • Anpassen des Dashboards mit Unterscheidung einzelner interner Clients und Zugriff von extern
  • Abfrage einer Webseite mit lokalen Blitzerinfos und Versand per Telegram in konfigurierten Zeitabständen oder sobald das Smartphone sich im Auto anmeldet

Was bei mir nicht geklappt hat:

  • Koukaam NETIO-230 (ohne A oder B), ein (nicht so) intelligenter Stromverteiler mit 4 Ausgängen von 2007 mit HTTP-Anbindung: Hier hat schon die automatisierte http-Authentifizierung nicht funktioniert. Deshalb habe ich dafür einen geeigneten Platz in der Mülldeponie gefunden 🙂

Softwareversionen:

  • Raspbian Buster (basiert auf Debian 10 Buster)
  • Node-RED 1.1.2 (am 10.07.2020 veröffentlicht, siehe Neuerungen der Version 1.1)
    • Dashboard 2.23.0
    • weitere Nodes (Erweiterungen)
  • Node.js 12.18.2
  • NPM 6.14.7
  • zigbee2mqtt 1.14.2
    • CC2531 USB sniffer mit Firmware vom 08.06.2019
  • Mosquitto 1.5.7 (letzte Version bei Debian, aktuell ist 1.6.10)
  • Tasmota Firmware 8.4.0 (Updates vom Autor ausdrücklich nur bei Fehlern oder Wunsch nach neuen Geräten oder Features empfohlen)

(letzte Überprüfung: 03.08.2020)

Gründe für Node-RED:

Ich kann mit der grafischen Programmierung von Node-RED alle Komponenten in ein Web-Dashboard integrieren und zusammen steuern. Zum Beispiel meldet der Hoppe Fenstergriff per Enocean Protokoll, dass die Tür geöffnet ist und wenn niemand (mehr) zuhause ist (kein Smartphone mehr im WLAN registriert), wird eine Meldung per Telegram an alle eingerichteten Bewohner abgesetzt. Außerdem kann ich über einen einzigen Zigbee-Schalter alle gewünschten Geräte, egal, ob per DECT, Zigbee oder WLAN steuern.

Node-RED unterstützt mit über 2700 Erweiterungen (Nodes) extrem viele externe und interne Verbindungen und läuft auf einem Raspi trotzdem stabil und ausreichend schnell.

Deutschsprachige Hilfe ist nicht einfach zu finden, es gibt kaum deutsche Literatur (bzw. diese geht wenig auf praktische Hilfe beim Verbinden der ganzen Komponenten ein). Bei Youtube sind einige gute Videos zu finden, empfehlenswert sind z.B. die offiziellen Videos auf englisch, es gibt ein englischsprachiges Forum auf Node-RED und einen deutschsprachigen videobasierten Kurs auf shop.haus-automatisierung.com, der zwar kostenpflichtig ist, aber doch die ersten Hürden nehmen hilft.

Anwendungsgebiete von Node-RED, die ich bereits realisiert habe:

Smarthome Steuerung im eigenen Haus mit den obigen Komponenten

Auslesen einer Waage über ein serielles Kabel, sobald ein Taster am Raspberry Pi gedrückt wird. Das Gewicht wird von Node-RED extrahiert und in eine Textvorlage eingetragen und dann mit dem aktuellen Datum und Uhrzeit auf einem Brother QL-720 Etikettendrucker im Netzwerk ausgegeben. Die Programmierung und die komplette Hardware war ca. halb so teuer wie das vom Hersteller angebotene Windows Programm, das dennoch deutlich mehr manuelle Eingriffe im ganzen Druckprozess erfordert hätte.

Einlesen von Transpondern direkt am Raspi mit Zu- und Abgang und Archivierung, dadurch auch eine Anzeige der anwesenden Personen in zwei Charts für heute und die letzte Woche inkl. manueller Korrektur über das Dashboard und Einbindung der aktuellen Personenzahl in die bestehende Webseite.

Auslesen von 1-wire Temperaturfühlern über den Raspi und Übergabe an das Monitoringprogramm PRTG.

Tipps & Tricks:

Tuya Geräte flashe ich mit Hilfe von Tuya-Convert ohne komplizierte Hardware-Fummeleien und auch ohne Öffnen der Geräte mit der Firmware von Tasmota. Weiterer Link: https://www.tasmota.info/ota/.
Es gibt allerdings seit ca. März 2020 Geräte mit neuer Tuya-Firmware, die damit derzeit noch nicht geflasht werden können. Pech hatte ich z.B. mit aktuellen Gosund SP112 Steckdosen, nachdem ich Anfang 2020 noch 5 Stück erfolgreich geflasht hatte. Außerdem hatte ich mit dem tasmota Node zusammen mit dem Enocean Node Probleme, so dass ich bei der Ansteuerung aller Tasmota Geräte mittlerweile den Weg über MQTT gehe und den tasmota Node nicht mehr installiere.

Ikea Tradfri Geräte (Birnen, Dimmer und Schalter) lassen sich mit zigbee2mqtt auch OTA (over-the-air) aktualisieren. Das Update von Birnen funktioniert in der Regel problemlos, batteriebetriebene Geräte sollten eine neue Batterie bekommen, mind. 10 Sekunden stromlos gemacht und kurz vor dem Update mit einem Tastendruck aufgeweckt werden. Sie sollten dann während das Update-Vorgangs, der durchaus > 2 Stunden dauern kann (deshalb auch die neue Batterie), möglichst nah neben dem Zigbee CC2531 USB Stick positioniert werden.

Chartwerte werden dauerhaft (bzw. für eine definierte Anzahl von Tagen) gespeichert mit Hilfe des Nodes node-red-contrib-persist. In einem Chart können auch mehrere Werte angezeigt werden:

Icons für das Dashboard können z.B. im Switch Node über die Custom Einstellung bei Icons oder bei Buttons direkt über den Eintrag Icon über die Auswahl von Font Awsome integriert werden, wobei ich besonders auf die Unterseite mit den Beispielen hinweisen möchte, wo gezeigt wird, wie man die Icons vergrößern kann (33% größer oder 2x – 5x so groß) und auch drehen, spiegeln und animieren kann.

Der Node RiveScript aus dem Paket node-red-contrib-rive läßt mit Hilfe der Scriptsprache RiveScript den Telegram Chatbot etwas intelligenter wirken.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht.