ANZEIGE

Tutorial: Installation von Node-Red und Mosquitto

Node-RED ist ein Programmierwerkzeug um Geräte, APIs und Online-Dienste auf neue und interessante Weise miteinander zu verbinden. Es stellt einen Browserbasierten Editor zur Verfügung, der das Zusammenfassen von Datenflüssen mithilfe der zahlreichen „Nodes“ in der Palette erleichtert. Diese können dann mit einem einzigen Mausklick in der Laufzeitumgebung bereitgestellt werden. Das derzeitige Repository umfasst 225.000 Module, die hier „Nodes“ genannt werden. Ebenso funktioniert Node-Red wie bspw. FHEM auf (fast) jedem Geräte, auch dem Raspberry Pi.

Bereits vor einiger Zeit bin ich schon über Node-Red gestolpter, doch fand zu diesem Zeitpunkt nicht die Zeit mich darin einzulernen. Es ist nunmal eben genau wie bei FHEM – es dauert einige Zeit bis man alles versteht. So ist Node-Red dann schlussendlich in die Vergessenheit geraten. Doch neulich (zum Glück) wieder der stolperer darüber. Die Zeit ist natürlich immer knapp, doch diesmal sollte ein erster Schritt erfolgen. Hieraus ist dann auch dieses Howto entstanden, in dem ich die Installation und einen ersten Funktionstest von Node-Red bzw. des Moquitto Brokers erkläre.

Sofern du dieses Howto nachmachen möchtest, beachte bitte auch die Umfrage am Ende dieses Blogposts.

Wer Raspbian STRETCH bereits installiert hat, kann direkt zu dem Punkt Installation von Node-Red springen.

Letzte Aktualisierung am 19.03.2024 um 02:27 Uhr | Werbung | Bilder: Amazon Product Advertising API

Raspbian STRETCH installieren

Auf den RaspberryPi muss zunächst ein Betriebssystem installiert werden, hierfür bietet sich die Linux-Distribution „Raspbian“ an. Die aktuelle Version wird als „Raspbian Stretch“ bereitgestellt.

blank

Update: Die derzeit aktuelle Version ist Raspbian Stretch. Auf dem Screenshot ist noch die alte Version zu sehen. Die Vorgehensweise ist identisch.

Auf dieser Seite im rechten Bereich (RASPBIAN STRETCH LITE) auf „Download ZIP“ klicken.

Direktdownload hier

Nach dem Download wird die ZIP-Datei entpackt und muss nun noch auf die SD-Karte des Raspberry kopiert werden.

Wenn eine gebrauchte SD-Karte verwendet wird, vorher bitte mit dem SD Card Formatter die Karte formatieren, da es ansonsten zu Problemen führen kann. Dadurch ist es möglich, dass der Raspberry im schlimmsten Fall nicht bootet.

Windows-Nutzer verwenden hierfür am besten den Win32DiskImager.
Hier geht es zum Direktdownload.

  1. Die heruntergeladene Image im Feld Image File auswählen,
  2. dann unter Device die MicroSDHC-Karte auswählen.
  3. Achtung: Der gesamt Inhalt auf der Speicherkarte wird gelöscht, sobald du auf Write klickst.
  4. Nach einer kurzen Wartezeit ist der Vorgang abgeschlossen. Windows möchte danach meist den Datenträger formatieren, da er nicht mehr für Windows lesbar ist. Dies sollte natürlich vermieden werden.

Für die Mac-User empfehle ich für den Flash-Vorgang den Pi Filler.
Hier geht es wieder zum Direktdownload.

Wichtig!
Wenn der Flash-Vorgang beendet ist, muss noch der SSH-Zugang aktiviert werden. Bei der aktuellen Version „Raspbian Stretch“ ist dieser standardmäßig deaktiviert.
Also die SD-Karte im Explorer öffnen (Ordner „boot“) und diese Schritte ausführen:

  1. Auf oberster Ebene -> Rechtsklick – Neu – Textdatei
  2. Die Textdatei wir „ssh“ (ohne Anführungszeichen) benannt und ohne Dateiendung gespeichert!

Hier gibt es diese fertige Datei als Download (entpacken!).

Ermittlung der IP

Nun kann die Speicherkarte in den Raspberry Pi gesteckt werden, die Stromversorgung, sowie das Netzwerkkabel kann ebenfalls an dieser Stelle angeschlossen werden.

Als nächstes benötigen wir die IP-Adresse des Raspberrys. Diese suchen wir uns in unserem Router heraus. I.d.R. sollte der Zugriff (Fritzbox vorausgesetzt) über „fritz.box“ funktionieren. Alternativ über die IP „169.254.1.1„, ebenfalls Fritzbox vorausgesetzt.
Als Name sollte „raspberrypi“ bei euch stehen.
Mit der derzeit aktuellen Firmware-Version sieht diese Übersicht bei mir so aus:

Angebot AVM FRITZ!Box 7590 WLAN AC+N Router...
AVM FRITZ!Box 7490 WLAN AC + N Router (VDSL/ADSL,...
AVM FRITZ!Box 7390 Wlan Router (VDSL/ADSL, 300...

Letzte Aktualisierung am 19.03.2024 um 07:06 Uhr | Werbung | Bilder: Amazon Product Advertising API

Nun muss noch dafür sorgen, dass der Router dem Raspberry Pi immer die gleich IP-Adresse gibt, damit diese sich bei einem Neustart o.ä. nicht ändert. Dazu wird in der Fritzbox der Haken „Diesem Netzwerkgerät immer die gleiche IPv4-Adresse zuweisen“ gesetzt.

 

Bei mir lautet die IP-Adresse also 10.0.0.30.

SSH-Verbindung zum Raspberry aufbauen

Für Mac
Die Mac-Nutzer können statt PuTTY, die Terminal-App benutzen. Der Login erfolgt mit dem Konsolenbefehl: ssh [email protected]
Nach der Bestätigung durch „Enter“ muss die kommende Abfrage mit „yes“ + „Enter“ bestätigt werden. Kommt der Fehler „Host key verification failed“, muss der Befehl „ssh-keygen -R 10.0.0.30“ eingegeben werden. Nun kann man den Login-Befehl erneut ausführen.
Alle weiteren Schritte sind ab diesem Punkt von Windows auf den Mac übertragbar.

Wir müssen uns nun per SSH auf dem Raspberry einloggen.
Unter Windows mittels dem Programm Putty.
Bei „Host Name (or IP adress)“ muss nun die zuvor ermittelte IP-Adresse (bei mir 10.0.0.30) eingegeben werden und mittels „Open“ die Verbindung hergestellt werden.
PuTTY Login

Im nachfolgend erscheinenden Terminal geben wir ein:
Login as: pi
Password: raspberry
(Beim Eingeben des Passwort sind keine Zeichen sichtbar.)

Nach erfolgreichem Login sollte nachfolgendes Fenster zu sehen:

WLAN-Verbindung herstellen

Sofern es nun gewünscht ist, kann an dieser Stelle direkt die WLAN-Verbindung konfiguriert werden. Dazu wird in die Konsole

sudo raspi-config

eingegeben. Es öffnet sich nun ein graues Fenster mit blauem Hintergrund. Hier wird nun Punk 2 ausgewählt „2 Network Options„. Im Anschluss „N2 Wi-fi“ mit „Enter“ auswählen. Es wird nun die SSID (also der Name deines WLAN) und das Passwort abgefragt. Danach ist die WLAN-Konfiguration schon abgeschlossen.

Letzte Aktualisierung am 19.03.2024 um 02:27 Uhr | Werbung | Bilder: Amazon Product Advertising API

Installation von Node-Red

Zunächst sollte ein update und upgrade durchgeführt werden.

sudo apt-get update && sudo apt-get upgrade

Im Raspbian STRETCH Lite ist Node-RED noch nicht installiert, daher muss es nun installiert werden.

bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)

„Are you really sure you want to do this?“ wird an dieser Stelle natürlich mit „y“ beantwortet. Ebenso sollen die Raspberry Pi spezifischen nodes installiert werden, also auch hier mit „y“ bestätigen.

Bei einem Raspberry Pi 1 dauert es nun ca. 20 – 30 Minuten, bei meinem Pi 3 dagegen nur ca. 4 Minuten.

Nachdem alles durchgelaufen ist, sollte das Fenster wiefolgt aussehen:

Soweit, so gut!

Node-RED absichern

Nun sollte Node-RED noch abgesichert werden, aber das ist an dieser Stelle natürlich jedem selbst überlassen.

Hierzu muss vorab der node-red-admin installiert werden.

sudo npm install -g node-red-admin

Dies dauert nun einen kurzen Augenblick. Es kann sein, dass Warnungen auftreten, diese können allerdings ignoriert werden.

Es wird nun ein hash für das eigene Passwort generiert. Euer Passwort wird aus Sicherheitsgründen nicht in der Konsole angezeigt. Also einfach gewünschtes Passwort eintippen und auf Enter drücken.

node-red-admin hash-pw

Diese Ausgabe wird nun mit STRG + C kopiert. Denn nun wird der hash in die config eingetragen. Diese wird nun aufgerufen:

nano ~/.node-red/settings.js

Hier werden die Zeilen, wie im Bild zu sehen, einkommentiert und entsprechend mit dem eigenen username und password ersetzt.

Mit STRG + X, Y und Enter wird die Datei nun gespeichert.

Node-Red Autostart

Damit Node-Red beim Systemstart des Raspberry Pi automatisch startet, wird node-red nun noch als service aktiviert.

sudo systemctl enable nodered.service

Nun erfolgt ein Neustart:

sudo service nodered restart

Node-Red starten

Nun kann Node-Red gestartet werden. Der Aufruf erfolgt dabei über: http://<DEINE IP>:1880

Hier wird dich nun eine ziemlich leere Seite begrüßen. An dieser Stelle kann nun schonmal ein Dashboard installiert werden. Dazu in das Menü gehen und dort „Manage palette“ auswählen.

Im nachfolgenden Fenster nun in der Suchleiste „dashboard“ eingeben, auf den Reiter „Install“ wechseln und das „node-red-dashboard“ installieren.

Was es damit auf sich hat, dazu später mehr.

MQTT-Broker „Mosquitto“ installieren

Um nun den MQTT-Broker Mosquitto auf dem System zu installieren, muss vorab der gpg.key hinzugefügt werden.

wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key && sudo apt-key add mosquitto-repo.gpg.key

Nun muss die Moquitto Stretch list hinzugefügt werden, dazu wird dieses Verzeichnis geöffnet:

cd /etc/apt/sources.list.d/

Und Mosquitto hinzugefügt, mit anschließendem apt-get update.

sudo wget http://repo.mosquitto.org/debian/mosquitto-stretch.list && sudo apt-get update

Nun zurück ins Hauptverzeichnis mittels

cd

Nun wird Mosquitto, samt aller dazu nötigen Pakete installiert. Hierzu wird der Befehl eingegeben:

sudo aptitude install mosquitto

Die erste Abfrage wird mit Nein beantwortet, also „n“ und Enter drücken. Danach werden die Abfragen zweimal hintereinander mit Ja, also „y“ beantwortet um so die Installation zu starten.

Nun kann Mosquitto gestartet werden:

sudo service mosquitto start

Erster Test des Brokers

Um das Ganze nun vorab einmal zu testen, wird in Node-Red ein MQTT Input auf den Flow per Drag-n-Drop gezogen und mit einem Doppelklick geöffnet.

Unter dem Reiter „Connection“ wird nun lediglich „localhost“ eingegeben, da der Broker ja lokal auf dem selben Raspberry läuft. Sollte diese auf einem anderen Gerät installiert sein, einfach die entsprechende IP-Adresse eingeben.

Danach erfolgt ein Klick auf den roten Button „Add“.

Nun muss ein sog. Topic festgelegt werden. Als Beispiel nehme ich hier „/smarthome“ und als Namen lege ich ebenso den Namen „smarthome“ fest. Mit einem Klick auf „Done“ werden die Einstellungen übernommen.

Um das Ganze nun gleich einmal testen zu können,  muss auf dem Flow der MQTT noch mit einer Debug-Ausgabe verbunden werden. Ein Klick auf „Deploy“ speichert die Änderung.

Nun wird der Reiter „Debug“ unterhalb des „Deploy“ Buttons ausgewählt. Hier wird gleich die Ausgabe unseres Tests erscheinen.

Mit dem Programm MQTT.fx hat man die Möglichkeit selbst Client zu spielen und dem Broker (also Mosquitto) etwas zuzuspielen. Das Programm gibt es für Windows und für Mac.
Download Version 1.50

Nach der Installation wird die Verbindung mit dem Raspberry Pi hergestellt. Dazu muss man in „Edit Connection Profiles“ hinein und dort ein neues Profil anlegen. Mein Profil heißt nun „Raspberry Pi“. Als Broker-Adresse muss nun die IP-Adresse des Pi eingegeben werden. Port und Client-ID können unverändert bleiben.

Mit einem weiteren Klick auf „Connect“ zeigt der rechte grüne Kreis die bestehende Verbindung an.

Nun gebe ich in dem Tab „Publish“ als Topic „/smarthome“ ein und kann darunter einen beliebigen Text eingeben.

Wenn nun alles klappt, sollte in der Debug-Ausgabe in Node-Red folgendes erscheinen:

Wir sehen: Die erste Verbindung besteht und Node-Red kann über den Broker angesprochen werden.

 

An dieser Stelle soll dieser Blogpost enden. Auch für mich ist Node-Red noch ziemlich neu, sodass ich mich hier vorab weiter einarbeiten muss bzw. auch möchte, da Node-Red eine sehr interessante Lösung darstellt. Selbst als Alteingesessener FHEM’ler gebe ich Node-Red eine Chance und werde hier am Ball bleiben.

Um euer Interesse am Thema besser einschätzen zu können, stimmt bitte bei der darunterliegenden Umfrage ab. So hat jeder die Möglichkeit den nächsten Blogpost zum Thema Node-Red zu beeinflussen.

Viel Spaß beim Nachmachen!

 

Welche Integrationsmöglichkeit bei node-red interessiert dich am meisten?


Wird geladen ... Wird geladen ...

Klicke auf einen Stern um eine Bewertung abzugeben!

Durchschnittsbewertung 4.7 / 5. Bewertungen: 18

Es tut uns leid, dass dieser Beitrag für dich nicht hilfreich war!

Lassen Sie uns diesen Beitrag verbessern!

Wie können wir den Beitrag verbessern?

17 Gedanken zu „Tutorial: Installation von Node-Red und Mosquitto“

17 Kommentare

  1. Hallo, danke für deinen Beitrag.
    Node-Red habe ich schon länger in Verbindung mit Loxone laufen.

    Ich dachte jedoch immer, dass ich, wenn ich Node-Red habe, keinen Broker mehr brauche? Kann das Node-Red nicht selbst übernehmen?
    MQTT verwirrt mich immer noch…

    • Hi Michael,
      wenn ich ehrlich bin: Auch mich verwirrt das Ganze mit dem MQTT noch. Daher bin ich mir derzeit selbst noch nicht sicher, ob du Mosquitto wirklich brauchst. Ich habe im Moment auch mehr FHEM im Einsatz mit Loxone in Verwendung, als Node-Red. Wenn sich das künftig ändert, dann kann ich hierüber sicher auch mehr berichten.

      Viele Grüße
      Michael

  2. Hallo Michael,

    Deine Anleitung ist wirklich gut. Klar und klappt auf Anhieb. Danke!

    Leider habe ich ein Problem mit dem Letzten Schritt:
    Wenn ich über MQTT.fx 1.7.1 versuche die Message zum Broker zu übertragen, klappt dies nicht. Es besteht in MQTT.fx eine Verbindung zum Broker und auch das LOG sagt: „: sucessfully published message hello world“. Bei NODE-Red v0.19.5 kommt aber keine Message im TAB Debug an. So wie es aussieht, sollte die WEB-Seite aber erfolgreich mit dem Broker verbunden sein.

    Im Moment weis ich nicht weiter…

    Danke und VG
    Jörg

  3. Hi Michael,

    First of all thanks for sharing. I discover some problems so far:

    1)
    nano ~/.node-red/settings.js shows this file does not exist.

    2)
    wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key && sudo apt-key add mosquitto-repo.gpg.key generates an error message: -bash: syntax error near unexpected token `newline‘

    Are your instructions still actual or am I doing something wrong? I can open the Node-RED web interface via ip-address:1880 without any problem.

    Hope to hear from you,

    regards, Hans.

  4. Hi Michael,

    Thanks for fast solving this small issue. Your instructions were very helpfull for me as a complete newbie with Node-RED and MQTT. After spending hours with several other installation instructions on the web yours works 😉

    Best regards,

    Hans.

    • Hi Hans,

      I’m glad that I could help you.
      Greetings from Germany.

  5. Hi,

    regarding the settings.js not existing: Michael, maybe you can add the hint to open node-red and close it quickly. This will generate the settings.js and it can then be edited nicely.

    Best, Stef

    • Hallo Karl,

      perfekt, es freut mich wenn ich dir damit helfen konnte.

      Viele Grüße
      Michael

  6. Hallo Michael,
    danke für die gute Beschreibung.
    Bin Bis zum Punkt

    Nun wird Mosquitto, samt aller dazu nötigen Pakete installiert. Hierzu wird der Befehl eingegeben:

    sudo aptitude install mosquitto

    gekommen. Dann diese Fehlermeldung: sudo: aptitude: command not found

    Was mache ich falsch?

    Gruß Robert

    • Halo Robert,

      ggf. hat sich hier etwas in der Zwischenzeit geändert. Versuche einmal:
      sudo apt-get install mosquitto

      Viele Grüße
      Michael

Schreibe einen Kommentar

OwnSmartHome.de