BerryBase
  • Shop
  • Raspberry Pi
  • Projekte
    • Alle
    • Audio / Sound
    • Display
    • Fun
    • IoT / Smart Tech
    • Kamera
    • LED
    • Luft / Wetter
    • Software
    Kompilierung eines eigenen Linux-Kernels für den Raspberry Pi 5

    Kompilierung eines eigenen Linux-Kernels für den Raspberry Pi 5

    Raspberry Pi AI Camera – Eine intelligente Kamera für kreative Projekte

    Raspberry Pi AI Camera – Eine intelligente Kamera für kreative Projekte

    Arduino Projekte-Ideen für den Sommer

    Arduino Projekte-Ideen für den Sommer

    DIY-Projekte für die Rasenpflege: Raspberry Pi Mähroboter und Sprinkler

    DIY-Projekte für die Rasenpflege: Raspberry Pi Mähroboter und Sprinkler

    Smart Home mit Shelly, JSON und Node Red: Leitfaden zur Installation und Programmierung

    Smart Home mit Shelly, JSON und Node Red: Leitfaden zur Installation und Programmierung

    Sprachassistenten mit Picovoice’s On-Device LLM-Technologie erstellen

    Sprachassistenten mit Picovoice’s On-Device LLM-Technologie erstellen

    Raspberry Pi Projekte für den Frühling

    Raspberry Pi Projekte für den Frühling

    Arduino GIGA R1 Display S

    Integration von ChatGPT mit Arduino GIGA R1 – Leitfaden

    Poetry Camera

    Poetry Camera mit Raspberry Pi Zero 2 W und Pi Camera Modul

    • Audio / Sound
    • Display
    • Fun
    • IoT / Smart Tech
    • Kamera
    • LED
    • Luft / Wetter
    • Software
  • Themen
    • Alle
    • Arduino
    • ESP
    • Hausautomation
    • IoT
    • Raspberry Pi
    • Robotik
    • Sensoren & Aktoren
    MQTT und der Raspberry Pi: Einfache Einrichtung eines IoT-Brokers

    MQTT und der Raspberry Pi: Einfache Einrichtung eines IoT-Brokers

    Nicla Sense Env – Die leistungsstarke Sensorlösung für Portenta- und MKR-Boards

    Nicla Sense Env – Die leistungsstarke Sensorlösung für Portenta- und MKR-Boards

    ESP32 Debuggen mit Espressif ESP-Prog und PlatformIO – Anleitung

    ESP32 Debuggen mit Espressif ESP-Prog und PlatformIO – Anleitung

    Welche Sensoren gibt es für Arduino? Dein umfassender Leitfaden

    Welche Sensoren gibt es für Arduino? Dein umfassender Leitfaden

    Arduino

    Ist Arduino-Programmierung schwer zu lernen? – Ein Leitfaden für Anfänger

    Objekterkennung mit Raspberry Pi 5 und Hailo AI Kit: Sicherheitshelm-Erkennung

    Objekterkennung mit Raspberry Pi 5 und Hailo AI Kit: Sicherheitshelm-Erkennung

    Pineboards HatDrive! Nano: Revolutionäre Speicherlösung für Raspberry Pi 5

    PiNEBOARDS HatDrive! NANO: Der ultimative Vergleich mit dem Raspberry Pi M.2 HAT+

    Datenschutzkonforme Smart Home Sicherheit für Airbnb mit Aqara

    Datenschutzkonforme Smart Home Sicherheit für Airbnb mit Aqara

    Arduino Plug and Make Kit: Dein idealer Einstieg in die Welt des IoT

    Arduino Plug and Make Kit: Dein idealer Einstieg in die Welt des IoT

    • Raspberry Pi
    • Arduino
    • ESP
    • Sensoren & Aktoren
    • IoT
    • Hausautomation
  • Kaufberatung
    • Alle
    • Produkte
    • Reviews
    • Top 10 Listen
    • Unboxing
    Fischertechnik Maker Kits – Neuheiten für die DIY- und Maker-Szene

    Fischertechnik Maker Kits – Neuheiten für die DIY- und Maker-Szene

    Nicla Sense Env – Die leistungsstarke Sensorlösung für Portenta- und MKR-Boards

    Nicla Sense Env – Die leistungsstarke Sensorlösung für Portenta- und MKR-Boards

    Raspberry Pi AI Camera – Eine intelligente Kamera für kreative Projekte

    Raspberry Pi AI Camera – Eine intelligente Kamera für kreative Projekte

    PiNEBOARDS HATs im Test: Erweiterungsmöglichkeiten für den Raspberry Pi 5

    PiNEBOARDS HATs im Test: Erweiterungsmöglichkeiten für den Raspberry Pi 5

    Was sind Widerstände, Potentiometer und Kondensatoren? Ein Guide für Einsteiger und Maker

    Was sind Widerstände, Potentiometer und Kondensatoren? Ein Guide für Einsteiger und Maker

    DisplayPort vs. HDMI: Welches Kabel passt zu dir?

    DisplayPort vs. HDMI: Welches Kabel passt zu dir?

    Raspberry Pi 5 Anschluss

    Raspberry Pi 5: Neue 2GB-Variante für nur 55 Euro veröffentlicht

    Einführung: Nutze das Raspberry Pi 5 und AI Kit für leistungsstarke KI-Projekte

    Einführung: Nutze das Raspberry Pi 5 und AI Kit für leistungsstarke KI-Projekte

    Pineboards HatDrive! Nano: Revolutionäre Speicherlösung für Raspberry Pi 5

    PiNEBOARDS HatDrive! NANO: Der ultimative Vergleich mit dem Raspberry Pi M.2 HAT+

    • Produkte
  • How To
    • Alle
    • Guides
    • Software / Programmierung
    • Wissensdatenbank
    Apache Guacamole: Die clientlose Remote-Desktop-Lösung installieren und einrichten

    Apache Guacamole: Die clientlose Remote-Desktop-Lösung installieren und einrichten

    Steam Link auf dem Raspberry Pi 5 installieren: Offizielle Methode & Docker-Alternative

    Steam Link auf dem Raspberry Pi 5 installieren: Offizielle Methode & Docker-Alternative

    Scratch 3.0 – Spielerisch Programmieren lernen

    Scratch 3.0 – Spielerisch Programmieren lernen

    MQTT und der Raspberry Pi: Einfache Einrichtung eines IoT-Brokers

    MQTT und der Raspberry Pi: Einfache Einrichtung eines IoT-Brokers

    ESP32 Debuggen mit Espressif ESP-Prog und PlatformIO – Anleitung

    ESP32 Debuggen mit Espressif ESP-Prog und PlatformIO – Anleitung

    Vaultwarden als Passwort-Safe mit Docker und Portainer installieren

    Vaultwarden als Passwort-Safe mit Docker und Portainer installieren

    Welche Sensoren gibt es für Arduino? Dein umfassender Leitfaden

    Welche Sensoren gibt es für Arduino? Dein umfassender Leitfaden

    Widerstand Farbcode: Einfache Erklärung, Tabelle und Beispiele

    Widerstand Farbcode: Einfache Erklärung, Tabelle und Beispiele

    Was sind Widerstände, Potentiometer und Kondensatoren? Ein Guide für Einsteiger und Maker

    Was sind Widerstände, Potentiometer und Kondensatoren? Ein Guide für Einsteiger und Maker

    • Guides
    • Wissensdatenbank
    • Software / Programmierung
  • News
Keine Ergebnisse
Alle Ergebnisse anzeigen
  • Shop
  • Raspberry Pi
  • Projekte
    • Alle
    • Audio / Sound
    • Display
    • Fun
    • IoT / Smart Tech
    • Kamera
    • LED
    • Luft / Wetter
    • Software
    Kompilierung eines eigenen Linux-Kernels für den Raspberry Pi 5

    Kompilierung eines eigenen Linux-Kernels für den Raspberry Pi 5

    Raspberry Pi AI Camera – Eine intelligente Kamera für kreative Projekte

    Raspberry Pi AI Camera – Eine intelligente Kamera für kreative Projekte

    Arduino Projekte-Ideen für den Sommer

    Arduino Projekte-Ideen für den Sommer

    DIY-Projekte für die Rasenpflege: Raspberry Pi Mähroboter und Sprinkler

    DIY-Projekte für die Rasenpflege: Raspberry Pi Mähroboter und Sprinkler

    Smart Home mit Shelly, JSON und Node Red: Leitfaden zur Installation und Programmierung

    Smart Home mit Shelly, JSON und Node Red: Leitfaden zur Installation und Programmierung

    Sprachassistenten mit Picovoice’s On-Device LLM-Technologie erstellen

    Sprachassistenten mit Picovoice’s On-Device LLM-Technologie erstellen

    Raspberry Pi Projekte für den Frühling

    Raspberry Pi Projekte für den Frühling

    Arduino GIGA R1 Display S

    Integration von ChatGPT mit Arduino GIGA R1 – Leitfaden

    Poetry Camera

    Poetry Camera mit Raspberry Pi Zero 2 W und Pi Camera Modul

    • Audio / Sound
    • Display
    • Fun
    • IoT / Smart Tech
    • Kamera
    • LED
    • Luft / Wetter
    • Software
  • Themen
    • Alle
    • Arduino
    • ESP
    • Hausautomation
    • IoT
    • Raspberry Pi
    • Robotik
    • Sensoren & Aktoren
    MQTT und der Raspberry Pi: Einfache Einrichtung eines IoT-Brokers

    MQTT und der Raspberry Pi: Einfache Einrichtung eines IoT-Brokers

    Nicla Sense Env – Die leistungsstarke Sensorlösung für Portenta- und MKR-Boards

    Nicla Sense Env – Die leistungsstarke Sensorlösung für Portenta- und MKR-Boards

    ESP32 Debuggen mit Espressif ESP-Prog und PlatformIO – Anleitung

    ESP32 Debuggen mit Espressif ESP-Prog und PlatformIO – Anleitung

    Welche Sensoren gibt es für Arduino? Dein umfassender Leitfaden

    Welche Sensoren gibt es für Arduino? Dein umfassender Leitfaden

    Arduino

    Ist Arduino-Programmierung schwer zu lernen? – Ein Leitfaden für Anfänger

    Objekterkennung mit Raspberry Pi 5 und Hailo AI Kit: Sicherheitshelm-Erkennung

    Objekterkennung mit Raspberry Pi 5 und Hailo AI Kit: Sicherheitshelm-Erkennung

    Pineboards HatDrive! Nano: Revolutionäre Speicherlösung für Raspberry Pi 5

    PiNEBOARDS HatDrive! NANO: Der ultimative Vergleich mit dem Raspberry Pi M.2 HAT+

    Datenschutzkonforme Smart Home Sicherheit für Airbnb mit Aqara

    Datenschutzkonforme Smart Home Sicherheit für Airbnb mit Aqara

    Arduino Plug and Make Kit: Dein idealer Einstieg in die Welt des IoT

    Arduino Plug and Make Kit: Dein idealer Einstieg in die Welt des IoT

    • Raspberry Pi
    • Arduino
    • ESP
    • Sensoren & Aktoren
    • IoT
    • Hausautomation
  • Kaufberatung
    • Alle
    • Produkte
    • Reviews
    • Top 10 Listen
    • Unboxing
    Fischertechnik Maker Kits – Neuheiten für die DIY- und Maker-Szene

    Fischertechnik Maker Kits – Neuheiten für die DIY- und Maker-Szene

    Nicla Sense Env – Die leistungsstarke Sensorlösung für Portenta- und MKR-Boards

    Nicla Sense Env – Die leistungsstarke Sensorlösung für Portenta- und MKR-Boards

    Raspberry Pi AI Camera – Eine intelligente Kamera für kreative Projekte

    Raspberry Pi AI Camera – Eine intelligente Kamera für kreative Projekte

    PiNEBOARDS HATs im Test: Erweiterungsmöglichkeiten für den Raspberry Pi 5

    PiNEBOARDS HATs im Test: Erweiterungsmöglichkeiten für den Raspberry Pi 5

    Was sind Widerstände, Potentiometer und Kondensatoren? Ein Guide für Einsteiger und Maker

    Was sind Widerstände, Potentiometer und Kondensatoren? Ein Guide für Einsteiger und Maker

    DisplayPort vs. HDMI: Welches Kabel passt zu dir?

    DisplayPort vs. HDMI: Welches Kabel passt zu dir?

    Raspberry Pi 5 Anschluss

    Raspberry Pi 5: Neue 2GB-Variante für nur 55 Euro veröffentlicht

    Einführung: Nutze das Raspberry Pi 5 und AI Kit für leistungsstarke KI-Projekte

    Einführung: Nutze das Raspberry Pi 5 und AI Kit für leistungsstarke KI-Projekte

    Pineboards HatDrive! Nano: Revolutionäre Speicherlösung für Raspberry Pi 5

    PiNEBOARDS HatDrive! NANO: Der ultimative Vergleich mit dem Raspberry Pi M.2 HAT+

    • Produkte
  • How To
    • Alle
    • Guides
    • Software / Programmierung
    • Wissensdatenbank
    Apache Guacamole: Die clientlose Remote-Desktop-Lösung installieren und einrichten

    Apache Guacamole: Die clientlose Remote-Desktop-Lösung installieren und einrichten

    Steam Link auf dem Raspberry Pi 5 installieren: Offizielle Methode & Docker-Alternative

    Steam Link auf dem Raspberry Pi 5 installieren: Offizielle Methode & Docker-Alternative

    Scratch 3.0 – Spielerisch Programmieren lernen

    Scratch 3.0 – Spielerisch Programmieren lernen

    MQTT und der Raspberry Pi: Einfache Einrichtung eines IoT-Brokers

    MQTT und der Raspberry Pi: Einfache Einrichtung eines IoT-Brokers

    ESP32 Debuggen mit Espressif ESP-Prog und PlatformIO – Anleitung

    ESP32 Debuggen mit Espressif ESP-Prog und PlatformIO – Anleitung

    Vaultwarden als Passwort-Safe mit Docker und Portainer installieren

    Vaultwarden als Passwort-Safe mit Docker und Portainer installieren

    Welche Sensoren gibt es für Arduino? Dein umfassender Leitfaden

    Welche Sensoren gibt es für Arduino? Dein umfassender Leitfaden

    Widerstand Farbcode: Einfache Erklärung, Tabelle und Beispiele

    Widerstand Farbcode: Einfache Erklärung, Tabelle und Beispiele

    Was sind Widerstände, Potentiometer und Kondensatoren? Ein Guide für Einsteiger und Maker

    Was sind Widerstände, Potentiometer und Kondensatoren? Ein Guide für Einsteiger und Maker

    • Guides
    • Wissensdatenbank
    • Software / Programmierung
  • News
Keine Ergebnisse
Alle Ergebnisse anzeigen
BerryBase
Keine Ergebnisse
Alle Ergebnisse anzeigen
Startseite Projekte IoT / Smart Tech

Smart Home mit Shelly, JSON und Node Red: Leitfaden zur Installation und Programmierung

Jörn Weise von Jörn Weise
2. Juli 2024
in IoT / Smart Tech, Guides
Lesezeit: 12 Min. Lesezeit
0
A A
0

Smart Home ist ein so interessantes Thema, und gerade mit den diversen Geräten von Shelly, NOUS oder Homematic IP ist es einfach, seine Wohnung oder das Haus smart zu machen. Ich nutze aktuell hauptsächlich die Produkte von Shelly. Mit der zweiten oder dritten Generation hat sich das einfache MQTT-Protokoll stark verändert. Einfache Kommandos gehören der Vergangenheit an. Mittlerweile verwenden die Shellys das JSON-Format für ihre Nachrichten.

In meinem Smart-Home habe ich selbst erstellte Smart-Touch-Displays, mit denen ich den Status einsehen und ändern kann. Das JSON-Format unterstützt meine Programmierung aber nicht, sondern nur einfache Topics. Damit ich keinen großen Programmieraufwand habe, aber dennoch die neueren Generationen der Shellys verwenden kann, nutze ich Node Red. Was Node Red ist, was es kann und wie ich wieder einfache MQTT-Topics zum Steuern neuerer Shellys verwende, möchte ich dir in diesem Blogpost zeigen.

Mein Name ist Jörn, ich bin leidenschaftlicher Maker und bin viel in Linux, Arduino, ESP32 und IoT unterwegs. Meine Erfahrung und Kenntnisse möchte ich dir weitervermitteln.

Inhaltsverzeichnis
  • JSON und Node Red
      • Das JSON-Format
  • Node Red
  • Node Red Installation
  • Die Vorarbeit und der Flow
      • Die Vorarbeit
    • Der Flow (Code)
  • Zusammenfassung

JSON und Node Red

Bevor ich in die Praxis einsteige, möchte ich einmal kurz erklären, worum es sich bei dem JSON-Format handelt und was Node Red ist. Beides ist wichtig, damit später die Programmierung von Node Red klar wird.

Das JSON-Format

Wer in der IT oder als Programmierer unterwegs ist, der wird das JSON-Format oder auch das XML-Format kennen. Beides sind Arten, um Daten leserlich dem User zu präsentieren, wobei auch das Programm oder System diese Daten einlesen oder bearbeiten kann. Das JSON-Format ist besonders interessant, weil man den vorhandenen JSON-Daten einfach weitere Daten hinzufügen oder sie manipulieren kann. Gerade in der Industrie habe ich es oft gesehen und verwendet, um einen schnellen Datenaustausch zu gewährleisten. Dabei können die JSON-Daten simpel, aber auch komplex aufgebaut werden.

Code 1 zeigt die Antwort auf den Status im JSON-Format bei einem Shelly der zweiten Generation.

{
  "id": 1,
  "src": "shellypro1-84cca87c1f90",
  "params": {
    "id": 0,
    "name": "name",
    "type": "switch",
    "enable": true,
    "invert": false
  }
}

Code 1: Antwort eines Shellys Gen 2 bei Abfrage des Status

Das Prinzip sollte bei diesem leicht leserlichen Format klar sein. Zunächst erhält man die ID und den SRC-Namen vom Gerät. Als Nächstes kommt ein weiteres Objekt mit dem Namen „params“, welches weitere Parameter mit einem Keyword und dem jeweiligen Datentyp aufweist. Das Objekt „params“ wird durch „: { }“ definiert, was wichtig beim korrekten Einlesen der Daten ist. Ohne große Kenntnisse sollte es ein Leichtes für dich gewesen sein, die Daten aus Code 1 zu lesen und zu interpretieren. Einen Blick ist der entsprechende Wikipedia-Artikel wert, der das JSON-Format noch einmal super erklärt und auch Parallelen zu XML zieht.

Node Red

Kommen wir nun zu der Frage, was genau Node Red ist. Node Red ist ein von IBM entwickeltes grafisches Entwicklungswerkzeug, das besonders in der Heimautomation und Automatisierung beliebt ist, weil es durch seine visuelle Programmieroberfläche leicht zu bedienen ist. Es ermöglicht das Zusammensetzen von Funktionsbausteinen mit Verbindern im Baukastenprinzip, die wiederum die Anweisungen enthalten.

Als Programmiersprache wird JavaScript für die Funktionen verwendet und die Laufzeitumgebung mit Node.js. Die Daten werden, daher auch die Einführung zu JSON, im JSON-Format gespeichert. Was bei Node Red interessant ist, ist die Tatsache, dass es mittlerweile viele Plugins gibt, die die Kommunikation mit verschiedenen Geräten oder auch Datenbanken ermöglichen und weitere Funktionen bereitstellen.

Erfreulich ist, dass Node Red alle gängigen IoT-Protokolle, ggf. über separate Plugins, beherrscht und durch die starke Community und Entwickler schnell auf Änderungen bei einzelnen Plugins eingegangen wird. Das wurde zum Beispiel deutlich, als Shelly die neue API für die Gen2 und Gen3 der Shellys vorgestellt und dokumentiert hat. Kurz danach wurden neue Plugins für die neuesten Shelly-Generationen angeboten.

Node Red kann auf fast allen gängigen Betriebssystemen installiert werden (siehe Node Red Dokumentation). Besonders interessant, gerade wenn man ältere Blogs von mir liest, ist die Möglichkeit, Node Red über Docker laufen zu lassen, was mittlerweile mein bevorzugter Weg ist. Da Node Red auch für die ARM-Architektur angeboten wird, ist es kein Wunder, dass auch ein Docker-Image für ARM und somit für die Verwendung mit dem Raspberry Pi verfügbar ist. Wer mehr über Node Red erfahren möchte, kann sich gerne den entsprechenden Wikipedia-Artikel ansehen. Bei weiterem Interesse kann ich nur das Fachbuch eines bekannten Fachverlages für Bücher, E-Books und Videokurse zu IT-, Kreativ- und Marketingthemen mit Sitz in Bonn empfehlen.

Node Red Installation

Wie bereits erwähnt und in meinem Blogartikel zur Einführung zu Docker vermuten lässt, nutze ich natürlich bevorzugt die Installation via Docker über Portainer. Da ich auf Docker Hub und auch auf der Node Red Installationsseite mich eingelesen hatte, weiß ich, dass ein Mount zu dem Pfad /data vom Container benötigt wird. Dies realisiere ich nicht wie sonst mit einem Bind, sondern mit einem Volume, welches ich zunächst anlegen muss, siehe Abbildung 1.

Abbildung 1: Volume anlegen

Im nächsten Dialog muss ein Name für das Volume vergeben werden, und über den „Create the volume“-Button wird das Volume dann erstellt, siehe Abbildung 2.

Abbildung 2: Volume Namen geben und erstellen

Als Nächstes erstellen wir den Docker-Container mit allen nötigen Einstellungen. Dazu wird zunächst in die „Container“-Übersicht gewechselt und über den Button oben rechts ein neuer Container angelegt, siehe Abbildung 3.

Abbildung 3: Neuen Container erstellen

Im Folgenden, da in meinem Basis-Blog zu Docker schon ausführlich beschrieben, die Konfiguration für Node Red:

  • Unter „Name“ einen Namen für den Container vergeben
  • Bei Image ist nodered/node-red:latest einzutragen
  • Einen neuen Netzwerkport anlegen
  • Host: Port der bei euch frei ist, ich empfehle hier 1880
  • Container: 1880, dies ist der Port der vom Container verwendet wird
  • Unter Volumes eine neue Map erstellen
  • Typ: Volume
  • Container: /data (dieser Pfad ist fix!)
  • Host: Das zuvor erstellte Volume

Danach kann der Container deployed werden, siehe Abbildung 4, wobei das dauern kann, da das Image zuvor heruntergeladen werden muss.

Abbildung 4: Alle Einstellungen vorgenommen, Container deployen

Sobald der Container gestartet wurde, kannst du Node Red im Webbrowser über die Adresse http://<IP-VOM-DEVICE>:1880 starten, siehe Abbildung 5.

Abbildung 5: Erster Start von Node Red mit Hinweisen

Damit ist die Installation abgeschlossen und sofern du alle Schritte befolgt hast, sollten bei einem Neustart von deinem Container alle Flows und Add-ons weiterhin vorhanden sein.

Die Vorarbeit und der Flow

Die Vorarbeit

Da Node Red nun läuft und MQTT schon in der Basis-Installation von Node Red enthalten ist, fehlt nur noch das Add-on, um mit den neueren Generationen von Shelly zu kommunizieren. Also muss zunächst unter dem Menüpunkt Palette, siehe Abbildung 6, ein Shelly Add-on nachinstalliert werden.

Abbildung 6: Palettenverwaltung öffnen

Unter dem Punkt Palette im Reiter Installation suchst du nach „Shelly“ und findest dort in den Suchergebnissen unter anderem das benötigte Add-on „node-red-contrib-shelly“, welches du über den Button Installieren installierst, siehe Abbildung 7.

Abbildung 7: Shelly Add-on installieren

Im Anschluss kommt noch einmal ein Dialog mit allen nötigen Informationen vor der Installation, siehe Abbildung 8.

Abbildung 8: Die Installation bestätigen

Der Flow (Code)

Jetzt kommt der Teil mit der „Programmierung“, die je nach Aufgabe in Node Red mal mehr mal weniger einfach ist. An dieser Stelle werde ich grob auf den Flow eingehen, damit verständlich ist, was da passiert. Später hänge ich den Code an und gebe Hinweise, wo Anpassungen vorgenommen werden müssen. Zunächst erst einmal der Flow, siehe Abbildung 9, beispielhaft von meinem Küchenlicht.

Abbildung 9: Der komplette Flow für die Küchenleuchte

Der obere Verlauf, beginnend mit dem blauen „Shelly Küche“, prüft in einem Intervall von einer Sekunde, ob sich etwas verändert hat. Gerade wenn der Node Red komplett neu gestartet wird, muss vorher eine Variable für den Flow, also das Arbeitsblatt, angelegt werden. An dieser Stelle können die grünen Kästchen ignoriert werden. Diese dienen zum Debuggen und geben die Raw-Daten in einer Debugkonsole aus. Das Prinzip hinter dem ersten Strang ist: Der aktuelle Status wird abgefragt und mit dem zuletzt gespeicherten verglichen. Sollte es einen Unterschied geben, wird zum einen die MQTT-Message mit dem neuen Status versendet und gleichzeitig auch der aktuelle Wert geändert.

Die zweite Reihe, rosa Kasten unterhalb vom blauen „Shelly Küche“, lauscht auf eingehende Topics, die für diese Funktion relevant sind. In diesem Fall ist es ein Kommando, den Status der Lampe zu verändern. Je nachdem, ob „on“ oder „off“ in dem Topic steht, wird eine entsprechende JSON-Nachricht generiert und mit dem neuen Kommando versehen. Anschließend wird dieser JSON-String dann an den Shelly übermittelt (blauer Kasten rechts unten). In der Theorie braucht es den zweiten Shelly-Baustein bei der unteren Reihe nicht. Der Übersicht und dem Verständnis halber habe ich ihn trotzdem eingebaut.

Was muss nun genau umkonfiguriert werden? Im Wesentlichen nur die Bausteine für den Shelly, einige Bausteine, welche globale Variablen lesen und schreiben, und die MQTT-Knoten.

Den Anfang sollen die Shelly-Bausteine machen, siehe Abbildung 10, bei dem die IP-Adresse sowie die Beschreibung geändert werden müssen. Sollte der Shelly mit einem Passwort geschützt sein, so ist dieses auch entsprechend einzutragen. Bei einem Shelly-Baustein ist der Modus auf Polling gestellt. Über „Zeit in ms“ kann das Abfrageintervall angepasst werden. In meinen Augen sind 1 Sekunde (1000 ms) ausreichend, kann aber auch niedriger gesetzt werden.

Abbildung 10: Den Shelly-Baustein umkonfigurieren

Jetzt geht es weiter mit den drei MQTT-Knoten. Da ein MQTT-Broker verwendet wird, muss dieser entsprechend korrekt eingestellt werden. Um die IP und ggf. Anmeldedaten für MQTT zu ändern, muss z.B. der Baustein unten rechts geöffnet werden und über den Stift neben dem hinterlegten Server der Dialog zum Broker geöffnet werden, siehe Abbildung 11.

Abbildung 11: Öffne MQTT-Server Einstellungen

Im nachfolgenden Dialog kannst du nun die IP-Adresse und den Port (roter Rahmen) anpassen sowie Anmeldedaten für die Verbindung korrigieren (gelber Rahmen). Natürlich ist es dir überlassen, welche weiteren Einstellungen du in Verbindung mit dem Broker anpassen möchtest, siehe Abbildung 12.

Abbildung 12: Die MQTT-Broker-Einstellungen anpassen

Da dieser MQTT-Broker global für alle Knoten gilt, muss dies auch nur einmal mit dem Button „Aktualisieren“ geändert werden. Nachfolgend nutzen alle MQTT-Bausteine die neuen Broker-Einstellungen. Als Nächstes müssen noch die Topics für Empfangen und Senden angepasst werden. Bei beiden MQTT-Nodes gibt es ein Feld mit „Topic“, siehe Abbildung 11, das besagt, auf welchen Topic der Baustein hören oder senden soll. Der MQTT-Baustein unten links ist für den Empfang eines Kommandos zuständig und fragt den Status „on“ oder „off“ im weiteren Verlauf ab. Hier muss also das Topic für den neuen Status von einem MQTT-Gerät via MQTT-Broker eingetragen werden!

Bei dem MQTT-Knoten rechts oben muss hingegen das Topic mit dem aktuellen Status eingetragen werden. Damit wissen im MQTT-Netz alle interessierten MQTT-Clients den neuen Status und können darauf reagieren. Der letzte Teil befasst sich mit der Anpassung der für den kompletten Flow zugänglichen Variablen, welche sich in drei Change-Bausteinen, siehe Abbildung 13, befinden.

Abbildung 13: Die Bausteine der Flow-Variable

In allen drei Bausteinen gibt es ein Teil, das mit „flow.“ beginnt, siehe Abbildung 14. Diese Variable muss für dein Projekt oder bei mehreren Flows angepasst werden. Wichtig an dieser Stelle ist, dass in allen drei Bausteinen derselbe Variablenname verwendet wird, siehe Abbildung 14.

Abbildung 14: Die Variable umbenennen

Damit ist der Flow vollständig, und du kannst über die Schaltfläche „Übernehmen“, siehe Abbildung 11 oben rechts, deinen Flow starten. Damit kann der Shelly ab der zweiten Generation nun wieder über ein einfaches Statuskommando eingestellt und auch ausgelesen werden.

Zusammenfassung

Der Einbau der Shellys ist nicht kompliziert. Das habe ich schon in einem anderen Blogbeitrag geschrieben, siehe Blogbeitrag. Da es zu lange dauern würde, den Flow nachzubauen, habe ich im Berrybase-Repo NodeRedShelly angelegt, damit der Nachbau über den Import einfacher ist. Für den ganzen Aufbau sind Docker mit Node Red und MQTT nötig. Danach kann über jeden MQTT-Client mittels einfachem Statuskommando der Shelly geschaltet werden. Mittels einer Heimautomationsoberfläche, wie OpenHAB, die mit dem MQTT-Broker kommuniziert, kann die Heimautomation weiter erweitert werden.

An dieser Stelle sei gesagt: Ich bin kein Experte mit JavaScript und Node Red, daher ist wahrscheinlich noch Luft nach oben bei der Programmierung.

Schlagwörter: smart home
TeilenTeilenTwittern
Vorheriger Beitrag

Homer-Dashboard installieren und konfigurieren auf dem Raspberry Pi

Nächster Beitrag

Uninterruptible Power Supply (UPS) Expansion Board für Raspberry Pi 5

Jörn Weise

Jörn Weise

Hallo! Ich bin Jörn, ein erfahrener Diplom-Ingenieur (FH) im Bereich Mechatronik und ein passionierter Softwareentwickler. Meine Faszination für Mikrocontroller und die vielfältigen Linux-Varianten wurde durch den Raspberry Pi geweckt. Ich lade euch ein, mit mir in dieses spannende Abenteuer einzutauchen. Also, worauf wartet ihr noch? Lasst uns gemeinsam starten und die Welt der Technologie erkunden!

ÄhnlicheArtikel

Aqara Lock U200: Dein smartes Türschloss für ultimative Sicherheit und Komfort
Unboxing

Aqara Lock U200: Dein smartes Türschloss für ultimative Sicherheit und Komfort

10. Juli 2024
Home Assistant im Einsatz im Wohnzimmer
News

Home Assistant Core 2024.4. Update entdecken!

4. April 2024
Smart Home Heizung mit Aqara FP2 Anwesenheitssensor einrichten
Guides

Smart Home Heizung mit Aqara FP2 Anwesenheitssensor einrichten

28. März 2024
Home Assistant im Einsatz im Wohnzimmer
IoT / Smart Tech

Smart Home Systeme mit Home Assistant

5. Februar 2024
Nächster Beitrag
Uninterruptible Power Supply (UPS) Expansion Board für Raspberry Pi 5

Uninterruptible Power Supply (UPS) Expansion Board für Raspberry Pi 5

Schreibe einen Kommentar Antworten abbrechen

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

News

Pineboards HatDrive! Nano: Revolutionäre Speicherlösung für Raspberry Pi 5
Produkte

Pineboards HatDrive! Nano: Revolutionäre Speicherlösung für Raspberry Pi 5

15. Juli 2024
Entdecke Raspberry Pi Connect: Fernzugriff leicht gemacht
Allgemein

Entdecke Raspberry Pi Connect: Fernzugriff leicht gemacht

10. Juli 2024
postmarketOS v24.06 Update: Jetzt über 250 unterstützte Geräte!
Allgemein

postmarketOS v24.06 Update: Jetzt über 250 unterstützte Geräte!

19. Juni 2024
Raspberry Pi AI Kit mit Hailo AI Modul
Raspberry Pi

Raspberry Pi AI Kit mit Hailo AI Modul

12. Juni 2024
DIY-Projekte mit Edge AI: Kleine KI-Modelle für Bastler
News

DIY-Projekte mit Edge AI: Kleine KI-Modelle für Bastler

4. Juni 2024
Arduino und MicroPython jetzt gleichzeitig auf Multi-Core-Mikrocontrollern betreiben
News

Arduino und MicroPython jetzt gleichzeitig auf Multi-Core-Mikrocontrollern betreiben

3. Juni 2024
  • OpenMediaVault NAS auf dem Raspberry Pi

    NAS mit einem Raspberry Pi bauen – Eine Anleitung

    0 teilen
    Teilen 0 Twittern 0
  • OpenMediaVault auf Raspberry Pi installieren: Tutorial

    0 teilen
    Teilen 0 Twittern 0
  • Raspberry Pi 5 mit M.2 HAT+ und SSD zusammenbauen und einrichten – Guide

    0 teilen
    Teilen 0 Twittern 0
  • Die Top 10 Smart Home Software im Vergleich

    0 teilen
    Teilen 0 Twittern 0
  • Raspberry Pi Betriebssysteme im Vergleich

    0 teilen
    Teilen 0 Twittern 0

Shop-Service

  • Abholung in Berlin
  • Berrys lohnen sich
  • Produktvorschlag
  • Jobs

Information

  • Impressum
  • AGB
  • Cookie-Richtlinie (EU)
  • Kontakt
BerryBase Blog

by Sertronics GmbH
Am Studio 20D
12489 Berlin
blog@berrybase.de

© 2024 BerryBase

Keine Ergebnisse
Alle Ergebnisse anzeigen
  • Shop
  • Raspberry Pi
  • Projekte
    • Audio / Sound
    • Display
    • Fun
    • IoT / Smart Tech
    • Kamera
    • LED
    • Luft / Wetter
    • Software
  • Themen
    • Raspberry Pi
    • Arduino
    • ESP
    • Sensoren & Aktoren
    • IoT
    • Hausautomation
  • Kaufberatung
    • Produkte
  • How To
    • Guides
    • Wissensdatenbank
    • Software / Programmierung
  • News

© 2024 BerryBase

Zur mobilen Version gehen