Raspberry Pi als Smart-Home-Zentrale mit Node-RED

Smart Home sieht die elektronische Vernetzung von Gegenständen des Alltags mit selbständigem Informationsaustausch ohne menschliches Zutun vor. Damit ist Smart Home faktisch die Umsetzung von Internet of Things (Internet der Dinge).

In einem Smart Home bildet eine Smart-Home-Zentrale die Grundlage für die Zusammenarbeit unterschiedlicher Geräte, Komponenten und Dienste.
Kommerzielle Smart-Home-Lösungen verschiedener Hersteller haben eine Smart-Home-Zentrale integriert. Allerdings ist die Kompatibilität unterschiedlicher Hersteller und Systeme begrenzt.
Aus diesem Grund setzen manche Anwender eine DIY-Lösung für ihr Smart Home ein oder bauen an einer Eigenentwicklung.

Eine Alternative zu den großen Smart-Home-DIY-Lösungen und einer kompletten Eigenentwicklung stellt die Open-Source-Software Node-RED dar. Steuerungen werden in Node-RED Flows genannt und funktionieren hier nach dem Prinzip Eingabe-Verarbeitung-Ausgabe (EVA). Steuerungen lassen sich im Node-RED visuell zusammenklicken. Dafür ist ein Flow-Editor integriert. Das heißt, man muss nicht programmieren können.

Der Flow-Editor

Node-RED Flow-Editor

Node-RED ist im Prinzip wie ein Baukasten. Die Software stellt alles bereit, um Abläufe, Steuerungen und Regelungen selber zu bauen. Das macht man im Flow-Editor von Node-RED.

Die Darstellung des Flow-Editors von Node-RED besteht aus 4 Bereichen:

  • Der Header ganz oben enthält neben dem Logo einen Deploy-Button und das Hauptmenü.
  • Auf der linken Seite befindet sich die Palette, die die Objekte enthält, die ausgewählt werden können. Objekte, die fehlen, können nachinstalliert werden.
  • In der Mitte befindet sich der Workspace, in dem man die Flows zusammenbaut.
  • Rechts davon befindet sich die Sidebar mit zusätzlichen Informationen und Bedienfeldern zum Workspace und den Flows.

Die Palette enthält alle Knoten, die installiert und verfügbar sind. Sie sind in Kategorien unterteilt. Hier sind Eingänge, Ausgänge und Funktionen definiert. Über den Paletten-Manager (im Hauptmenü rechts oben erreichbar) kann man weitere Nodes in der Palette installieren.
Wenn man Flows (im Sinne von Abläufen für Steuerungen) erstellen will, dann zieht man Nodes (Knoten/Objekte) per Drag and Drop aus der Palette in den Workspace. Anschließend muss man die Nodes konfigurieren (am roten Dreieck erkennbar) und miteinander verbinden (Kreise an der Seite an einem Node). Ein Flow wird als Registerkarte innerhalb des Workspaces dargestellt. Ein Node kann man durch einen Doppelklick darauf konfigurieren.

Hinweis: Einmal installierte Software neigt dazu relativ schnell zu veralten, weil es immer mal wieder neue Versionen gibt, die sich verändern. Deshalb verzichten wir auf grafische Darstellungen und detailierte Beschreibungen zum Flow-Editor. Für konkrete Anwendungen gibt es sehr viele Beschreibungen im Internet. Für manche Lösungen existieren auch Video-Beschreibungen.

Fertige Flows aus der Flow-Bibliothek

Der Flow-Editor von Node-RED weist eine gewisse Komplexität auf, auf die man sich bis zu einem gewissen Grad einlassen muss. Das bedeutet nicht, dass man alle Flows selber erstellen muss. Flows kann man im Flow-Editor vergleichsweise leicht importieren und exportieren. Hierfür wird das JSON-Format verwendet, bei dem es sich um ein speziell strukturierte Text-Datei handelt.
Wahlweise kann man den JSON-Datensatz als Text kopieren/einfügen oder eine JSON-Datei herunterladen/hochladen.

Populäre Flows sind in einer Flow-Bibliothek dokumentiert, die frei verwendet werden können. Eventuell ist die eigene Lösung nur wenige Klicks entfernt.

Benutzeroberfläche für ein Dashboard

Desweiteren ist in Node-RED berücksichtigt, dass der Anwender eine Benutzeroberfläche (Dashboard) braucht, in dem er sich Daten anzeigen lassen oder Konfigurationen ändern kann. Diese Bedienoberfläche wird von Node-RED als Webseite bereitgestellt und lässt sich mit einem Webbrowser aufrufen und bedienen.

Node-RED installieren und konfigurieren

Die Installation und Konfiguration von Node-RED erfolgt über die Kommandozeile, was innerhalb weniger Minuten erledigt ist. Danach können Flows für Steuerungen und Anzeigen für den Webbrowser erstellt werden.

Beispiel: Smart-Home-Zentrale mit Mosquitto und Node-RED

Wenn die Geräte im Smart Home im eigenen Netzwerk das Protokoll MQTT sprechen, kann man auf einen Raspberry Pi den MQTT-Broker Mosquitto zusammen mit Node-RED installieren. Auf diese Weise lassen sich Daten visualisieren und Steuerungen realisieren.

FAQ: Wo kann man in Node-RED die MQTT-Publish- und MQTT-Subscriber-Funktion auswählen ?

In der Palette rechts befinden sich etwas weiter unten die Funktionseinheiten für MQTT. Es gibt vom Prinzip her nur zwei. Eine Funktion zum Erzeugen eines MQTT-Subscribers und eine für den MQTT-Publisher.

Weitere verwandte Themen:

Frag Elektronik-Kompendium.de

Elektronik-Set Raspberry Pi Edition
Elektronik-Set Raspberry Pi Edition

Elektronik erleben mit dem Raspberry Pi mit Python und GPIO Zero

  • Leichter Einstieg ins Hardware-nahe Programmieren mit Python und GPIO Zero
  • Experimentieren und Programmieren ohne Vorkenntnisse
  • Sofort Loslegen mit All-in-one-Set

Elektronik-Set jetzt bestellen

Elektronik-Fibel

Elektronik einfach und leicht verständlich

Die Elektronik-Fibel ist ein Buch über die Grundlagen der Elektronik, Bauelemente, Schaltungstechnik und Digitaltechnik.

Das will ich haben!