Day 5: Node-RED

Behind the fifth door of the Advent calendar is a button and we are going to use it today in our experiment instead of the boot button. We will connect the button to pin 18 and GND in such a way that when pressed, it will pull the pin to ground, thus to LOW. If you have selected the program of the day and you press the button, a message is sent via UDP.

Versuchsaufbau

Breadboard Construction

Today, you will become familiar with the Node-RED program and learn how to create your own little programs and automate tasks. Node-RED is free software and allows us to link together different devices, online services and APIs (programming interfaces) through a simple graphical interface. The links are called flows and are simply drawn by mouse click.

Node-RED is available for Linux, Windows and macOS. It would also make sense to use a Raspberry Pi, as it can be left on, it does not need much power and that is in line with the idea of the Smarthome. Besides, Node-RED is already preinstalled under Raspbian.

I will demonstrate the installation for Windows 10 as an example. Most of these commands can be used with other systems.

First Node.js must be installed. This software is available along with a detailed installation manual from the website https://nodejs.org/. Double-click and install the 16 MB MSI file. To make sure that everything installs properly, open the Windows terminal, also called command line or shell (Windows key + [R] and then enter cmd), and type node –version && npm –version

You will see something like v8.10.0 and 5.6.0, or maybe you already have a newer version. In the command line enter the command that will install NodeRED:

npm install -g –unsafe-perm node-red

This may take a while. Then use the command line to start Node-RED: node-red

Die Firewall meldet sich. Im Hintergrund startet Node-RED in der Konsole

Firewall request. In der console Node-RED starts in the background

Firewall immediately acts and wants to know how to proceed with this new connection. Now it is essential to select Private networks and Allow access. Only then Node-RED will function properly. Also, it is important that you do not close the terminal at this stage as this would also terminate Node-RED.

Now you have installed and launched Node-RED.  But except a few lines in the terminal you haven’t seen anything useful yet. The user interface of the software is opened via the browser. Thus, open t by using the address http://127.0.0.1:1880/. This is the localhost address that you use to address your machine. The number 1880 is the port through which you reach Node-RED. Note here, if you want to access NodeRED from another machine, you will have to use the machine’s proper IP. But right here you see the Node-RED interface with the flow area in the middle, with nodes on the left and information on the right.

Einstellungen und eine empfangene Nachricht

Settings and a message received

The Input section on the left has a node called udp. Drag it into the free area in the middle. A bit further down under the output is debug. Drag this node also into the area. Link the two nodes by clicking and dragging with the mouse. Then double click the UDP node to open the settings. Enter everything exactly as shown in the picture above. Confirm with Done. Start by clicking the Deploy button in the top right corner. The message Successfully deployed appears briefly. The new flow is now active. As a final step, select the debug tab on the very right and then press the button on the breadboard. The debug window will show a message in the familiar JSON format: {"cmd": "btn1_pressed"}. The connection to Node-RED has been established.

Note: Counting the board pins can be tiresome. Therefore, we have provided a stencil on our Board page under Pinout, which you can print out, cut and place on the board.

46 Comments

  1. Sebastian Müller

    so also ich konnte zwar node.js installieren aber node red installieren mit den angegeben befehlen war auf meinem windows laptop nicht drin.

    C:\Users\User>node -version && npm -version
    node: bad option: -version

    ging bei mir nicht!

    Was auch nicht ging:

    C:\>npm install -g -unsafe-perm node-re
    npm ERR! code E404
    npm ERR! 404 Not Found: node-re@latest

    npm ERR! A complete log of this run can be found in:
    npm ERR! C:\Users\User\AppData\Roaming\npm-cache\_logs\2018-12-10T11_06_00_089Z-debug.log

    Reply
    1. Sebastian Müller

      Installation auf dem Pi hat geklappt mit einer anderen Anleitung.

      Schön wäre es wenn die Links hier im Blog als Links angegeben werden. Hypertext und so…

      Reply
      1. Sebastian Müller

        was darn lag, dass der Befehl hier falsch angegeben ist:

        Installing Node-RED as a global module adds the command node-red to your system path. Execute the following at the command prompt:

        npm install -g –unsafe-perm node-red

        Reply
        1. paulaner

          Hallo,

          ist doch das Gleiche oder?

          f.k.
          npm install -g –unsafe-perm node-red

          du
          npm install -g –unsafe-perm node-red

          Reply
    2. paulaner

      Hallo,
      ich werde und kann dir keine Anleitung an die Hand geben.
      Ich konnte aber bei mir (Win8.1) dein?, auch nicht einen der oben angegebenen Befehle ausführen.
      Etwas googlen hat geholfen.

      Zitat:
      node –version && npm –version

      da musste ich 'node -v' nehmen.

      oder 'npm -v' zwar mit Fehlermeldung aber 'er' spuckt die Verion aus.

      Genauso ist es mit 'npm install -g –unsafe-perm node-red'.
      -g bedeutet global, was immer damit gemeint ist, google.
      und und und

      Reply
  2. Theo

    Leider tut der Tastschalter bei mir gar nichts, weder mit dem Programm von Tag 4 noch von Tag 5…

    Reply
    1. paulaner

      Hallo,

      Bei Tag 4 ist es der Taster mit der Bezeichung 'Boot' auf dem Board NodeESP, dazu Tag 4 in den NodeESP laden.
      Packet Sender auf deinem Rechner öffnen, UDP Adresse kontollieren/ändern, fertig. Taste drücken, viola.

      Bei Tag 5 den Taster auf dem Steckbrett montieren, Programm in den NodeESP laden, Tag 5, Paket Sender auf dem PC öffnen, Taster auf dem Steckbrett betätigen, viola.

      Ansonsten denke ich an ein Problem auf deinem PC mit dem Packet Sender.

      Hast du mit den anderen Flows Probleme?
      Welcher PC, OS, Brower?

      Reply
  3. Rsoldie

    Hi, habe ich das jetzt so richtig verstanden, das ich mit tablet und smartfon einpacken kann weil ich keinen pc habe?
    Oder gibts da ne altenaive fürs mobile? Sonst wird der kalender dies jahr echt teuer…
    Mfg

    Reply
    1. paulaner

      Hallo,

      ja da sollte man sich auch bei diesen Dingen im Vorfeld gut informieren.

      Aber teuer muß nicht sein, Alternativen gibt es zum PC.
      Dieses Jahr steht der Node-Red Editor im Vordergrund und dafür reicht ein Raspberry 2B oder 3B usw..

      Also ein kleiner stromsparender SOC Rechner, Chipkarten groß/klein.

      Eine Image für den RPi gibt es und es ist schon Node-Red vorinstalliert.
      Bei Fragen nur zu.

      Reply
      1. rsoldie

        ist dieses node red in "noobs" heist das glaub ich , schon drin? ich hab ein himbeerchen, die letzte ausgabe, wenn ich nicht irre.
        und danke für die schnelle antwort. hab ich die ganze zeit gesucht und übersehen, aber nu weis ich ja worauf ich achten muss.

        Reply
        1. rsoldie

          ich habs gefunden, das node red. nu brauch ich nur noch einen monitor, auf dem ich was erkenne. also hat sich der text hier oben erledigt außer das danke;-)
          mfg

          Reply
          1. paulaner

            Hallo,

            etwas muß ich deine Freude doch noch dämpfen.
            Eigentlich kenne ich mich mit den Raspberrys jeder Version gut aus.
            Aber gut heißt eben nicht, ich kann alles.

            Ich habe mal spaßeshalber ein Raspberry Pi 3B aufgesetzt.
            SD Karte mit Etcher und einem 2018-11-13-raspbian-stretch-full.zip Image bespielt.
            Sämtliche neuen Images bringen Node-Red mit, aber das ist nur der Server.
            Du mußt schon einen Browser starten damit du auch mit Node-Red arbeiten kannst!
            OK.

            Nächster Punkt.
            Es fehlen im Server viele Module die gebraucht werden. Kein Problem installiere ich nach, wirst du sagen.
            Ja da gibt es das nächste Problem, Pakete nicht vorhanden und der Manager auch nicht.
            Du mußt erst npm installieren. Dann das Dashboard Modul mit den Manager.

            Erst dann kannst du die Beispiele des Kalenders verfolgen.
            Ob du nun jedes einzelne Projekt tageweise importierst oder alle, egal.

            Ich hoffe ich habe nichts vergessen, Google ist auch dein Freund, wenn nicht frag ruhig.

          2. Horst

            Hejo,
            ich weiß es ist schon ziemlich egal aber wenn du ne Aufgabe lösen willst geht das auch aufm Handy mit Python. Bis war nodered nur zum einfachen import und aufrufen der Funktionen da. Kann man alles auch mit Python abbilden.

  4. hslschulz

    Bitte um Erklärung zu dieser Fehlermeldung:

    7.12.2018, 17:05:24node: 6422069f.865808
    msg : string[17]
    "error: EADDRINUSE"

    wer kann mir da helfen ?

    Reply
    1. paulaner

      siehe deine erste Post

      Reply
    2. Jens_aus_Muc

      Hatte auch das Problem auf einem Mac mit gleichzeitig geöffnetem PacketSender. Den schließen, ggf. neu deployen – dann ging es!

      Reply
  5. Andreas

    Als Linux-Nutzer habe ich Node-Red übrigens über https://github.com/node-red/node-red/releases heruntergeladen, entpackt, mit npm install –production installiert/kompiliert/die Dependencies heruntergeladen und dann mit npm start gestartet. Die offiziell vorgeschlagene Variante mit sudo npm install -g war mir dann doch zu ominös (entsprechend https://nodered.org/docs/getting-started/installation)

    Reply
  6. T2brozz

    Bei mr sendet der durchgehen , auch ohne eine Verbindung zum Knopf die Antwort und hört auch nicht auf.

    Kann mir jmd helfen

    Reply
  7. T2brozz

    Andere Sache kann man damit nur die vorgefertigten programme laufen lassen oder werden im laufe des Kalenders auch neue Programme für den Node von den Käufern entwickelt

    Reply
  8. hslschulz

    hallo, wie bekomme ich das Programm node red unter mac os am laufen, habe es installiert , läßt sich aber nicht öffnen

    Reply
    1. hslschulz

      ok das Programm läuft jetzt, das ist das nächste Problem.

      Bitte um Erklärung zu dieser Fehlermeldung:

      7.12.2018, 17:05:24node: 6422069f.865808
      msg : string[17]
      "error: EADDRINUSE"

      wer kann mir da helfen ?

      Reply
      1. paulaner

        EADDRINUSE

        E ADDR IN USE

        Abgekürzt: Eingangsaddresse in Benutzung.

        Reply
        1. hslschulz

          ok und wie kann ich das ändern oder abstellen ?

          Reply
  9. Christian

    Ach eins noch: "Deswegen gibt es auf der Boardseite im Bereich Pinout eine Schablone […]"
    Welche Boardseite?
    Ich habe hier alles abgegrast und nix gefunden… hast Du mal einen Link?

    Reply
    1. Clemens

      Bei der Homeseite deines NodeESP gibt es den Punkt "NodeESP Pinout", da gibts die Schablone

      http://nodeesp.local/info/layout.htm

      Reply
      1. Joachim

        Das klingt gut – leider sieht die Zeichnung hinter dem Download "Printable Pinout to lay on your Board" ganz anders aus, als in der Vorschau gezeigt und ist für den angegeben Zweck gänzlich ungeeignet (sieht aus wir dir oberste Lage des LP-Layouts).
        Schade – wäre schon ganz hilfreich …

        Gibt es die Zeichnung nicht auch hier auf der Seite zum Download?

        Reply
        1. paulaner

          Du benutz zum anzeigen/drucken ein unpassendes Programm.

          IE kann mit .svg umgehen

          Reply
          1. Hans-Joachim

            ich habe die Pinouts beim Drucken auf 48% gezoomt, dann hat es gepasst. Das s/w Pinout ausgeschnitten und auf das Board gelegt.. Funktioniert gut. Danke, Fabian für diese Idee.

          2. Andreas

            Wenn ich das SVG in Chromium oder Firefox öffne, bekomme ich ein winzig kleines Bild, auf dem der Text, der die Pins beschreibt, absolut nicht lesbar ist (verwaschen/verpixelt).

            Nur wenn ich es in ein leeres Blatt in Libreoffice Draw ziehe, bekomme ich das gewünschte Ergebnis

    2. Maik

      Auf der Home Seite des Node Programms wo du auch anfangs die IP eingeben musstest

      Reply
  10. Maik

    Hallo, ich hatte das selbe Problem und es liegt tatsächlich an der Firewall.
    Um dieses Problem zu lösen folgt ihr einfach meiner Anleitung.

    Öffnet die Firewall Einstellungen

    (Einstellungen /Windows Sicherheit /Firewall &Netzwerkschutz)

    Dann im unteren Bereich "Zugriff von App durch Firewall zulassen" anklicken

    Es öffnet sich ein neues Fenster
    Klickt auf "Einstellungen ändern"
    Nun solltet ihr beliebig die Häckchen aktivieren und deaktivieren können

    Sucht in der Liste nun nach "Node.js:server-side Javascript" und aktiviert die Häckchen

    Am Ende unten mit okay bestätigen und nun sollte es funktionieren
    Bei mir war das auf jeden Fall so

    Reply
    1. Peter

      Hallo Maik,
      ich habe mir meine Settings mal angesehen und node.js kann in mein privates Netzwerk ohne irgendeine Beschränkung von Ports, dennoch bekomme ich immer einen Fehler wie
      [error] [udp in:PortListener] error: EACCES
      der sich auf den Input Node für UDP bezieht.
      Gruß
      Peter

      Reply
      1. Maik

        Hi, mhhh vielleicht die beiden Programme neu installieren, ist das Board richtig zusammengesteckt und verkabelt? Blockiert ein anderes Programm wie ein Virenscanner zb. die Programme?
        Sorry bin halt auch kein Computernerd

        Reply
        1. Maik

          Achso vielleicht auch wichtig, Tag 5 im Kalender aktivieren oder auch mal nach einem update schauen.

          Reply
  11. Christian

    Seeeehr cool!

    Pass auf, ich habe in meinem Netzwerk einen ELV Raspmatic ("Charly") Bausatz (also die selbstgebaute Variante von der Homematic CCU3) und darin als Addin NodeRed installiert. Das Programm aus Tag #5 funktioniert damit super! Was dadurch alles möglich wird in Sachen Heimautomation! :D

    Reply
  12. Peter

    Guten Tag,
    ich habe ein ähnliches Problem, die Installation von node.js und der download von node-red haben wie erwartet funktioniert. Den Flow hatte ich auch recht schnell zusammen. Mit Deploy habe ich den Flow dann hochgeladen und auch im Browser eine Bestätigung erhalten. In der Konsole (cmd) bekomme ich aber folgende Fehlermeldung:

    5 Dec 10:24:48 – [info] Stopping flows
    5 Dec 10:24:48 – [info] Stopped flows
    5 Dec 10:24:48 – [info] Starting flows
    5 Dec 10:24:48 – [info] Started flows
    5 Dec 10:24:48 – [error] [udp in:3aa296a.f26226a] error: EACCES

    Im Packet Sender bekomme ich die erwartete Meldung für jeden Tastendruck.

    Was mache ich falsch?

    Beste Grüße
    Peter

    Reply
    1. Peter

      Also ich habe das ganze mal unter Ubuntu versucht und dort funktioniert alles nach Plan, also gehe ich davon aus, dass es ein Rechteproblem unter Windows 10 ist. Bin mir noch nicht sicher ob Firewall oder Fileaccess.

      Wenn ich von Windows auf den node-red Server mittels IP zugreife, dann funktioniert auch alles.

      Also mal die Firewall testhalber abschalten und node-red als Administrator installieren.

      Reply
      1. Peter

        OK, bin zwar nicht schlauer, aber nun geht es auch unter Windows.

        Nachdem ich node-red de-installiert habe und Windows rebootet habe, waren auf einmal die Antwortzeiten von node und npm schneller. Ich habe dann als Administrator node-red installiert und anschließend hat node-red sowohl als Administrator oder User funktioniert.
        Keine Änderung an der Firewall oder Verkabelung.

        Einzig der Packet Sender läßt sich nicht mehr nutzen, er meldet das UDP-Port 55056 schon benutzt wird und deaktiviert den Server.

        Again what learned

        Reply
        1. Bernd

          Hallo,

          der Packet Sender und der Node-Red Server dürfen nicht gleichzeitig laufen. Startet man den Packet Sender zuerst und dann Node-RED, zeigt das Eigenschaften-Fenster des UDP-Nodes im Node-RED "Ports already in use: 55056" und es kommt beim Deploy natürlich zu der Fehlermeldung "error: EACCES". Also alles noch mal beenden (Node-RED, Packet Sender) und dann nur Node-RED starten. Dann funktioniert es auch. Es kann halt nur ein Programm den Port 55056 belegen…

          Reply
          1. paulaner

            Hier muß ich meiner Erfahrung nach wiedersprechen, bei mir funktioniert es,
            Habe den Packet Server laufen und habe dann Node-Red gestartet, ok.
            Beide empfangen die Nachricht!

            Man darf nicht verallgemeinern.

            paulaner

          2. Bernd

            OK, in MEINER Umgebung (nur IPv4) funktioniert es reproduzierbar nicht, wenn beide gleichzeitig laufen…

          3. paulaner

            Hallo,
            jetzt muß ich mich nochmals melden.
            Am 6.Tag klappt es nicht mehr mit beiden Programmen auf den Packet Server und Node-Red zuzugreifen.
            Bernd schrieb es schon!

            Habes wie Bernd beschrieben gestartet, gleicher Fehler. Packet Server beendet, Empfang war da. Dann Packet Server gestartet, dann sagt er irgendwas von '… multiinstance .. ', OK, UDP ist dann da 'deaktiviert', aktivieren geht nicht.

            Warum es aber am 5.Tag bei mir ging, ich weiß es nicht, zuviel installiert, mit offenen Programmen/Shell/Updates etc. handiert?.

            Eine Entschuldigung an Bernd.
            gruß paulaner

  13. wildi

    Guten Morgen
    Es hat alles geklappt, ausser dass ich im Debug Fenster keine Nachrichten erhalte.Der NodeESP sendet auf Knopfdruck eine Nachricht, die ich im Packet Sender sehe, aber nicht in NodeESP.
    Im cmd Fenster (Windows 10) ist die Nachricht:
    5 Dec 08:35:41 – [info] Starting flows
    5 Dec 08:35:41 – [info] Started flows
    5 Dec 08:35:41 – [info] [udp in:4c7fb40b.a27f3c] udp listener at 0.0.0.0:55056
    Was kann ich sonst noch überprüfen?
    Vielen Dank und freundliche Grüsse
    Gérard

    Reply
    1. fk (Post author)

      Hallo, hast du den Packet Sender parallel laufen? Wenn ja teste Mal ob es funktioniert, wenn du den Packet Sender schließt. Ansonsten ist die Firewall meist das Problem.

      Reply
    2. Benzo

      Hast du die beiden Kabel angeschlossen wie in der Anleitung gezeigt? Ohne die klappt es nämlich nicht :D Nach Anschließen der Kabel evtl den Debug mit Klick auf den "Schalter" am rechten Rand des Debug Nodes auf der Flow Fläche ausschalten, erneut einschalten und nochmal deployen.
      Bei mir ging es mit der Nachricht im Debug Fenster auch obwohl der Paket Sender parallel lief. Daran dürfte es also nicht liegen.

      Reply
      1. paulaner

        Ich muß meinem Vorschreiber mal sagen, welchen Unsinn er schreibt.
        Die zwei Drähte sind absolut nicht von Belang, führen diese doch ins 'Leere'.

        MSI Laptop, Win 8.1.
        Bis jetzt funktionierte alles. Man muß bei einigen sein Grips anstrengen aber es funktioniert.
        Danke.

        Reply

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.