Node-RED zur Verarbeitung der TTN Daten

Die Node-RED Plattform eignet sich hervorragend um schnell Daten von A nach B zu bekommen und sie zwischen durch anzupassen, transformieren oder mit anderen Daten anzureichern, als sie auch auf unterschiedliche Datensenken zu verteilen.

Ein klassischer ETL Prozess mit grafischer Oberfläche.

Die Einrichtung der Datenbanken können wir an anderer Stelle mal genauer besprechen, hier soll es erst einmal um Node-RED gehen.

Installation

Node.js und npm

Um Node.JS auf dein System zu installieren gibt es viele Möglichkeiten, ich möchte an dieser Stelle die Installation unter Debian kurz erklären. Wer schon die aktuelle Version von Node.JS und npm laufen hat kann zur Installation von Node-RED weiter gehen.

Du musst Node.js PPA zu deinem System hinzufügen, welches auf der offiziellen Website von Nodejs bereitgestellt wird. Wir müssen auch das Software-Properties-Common-Paket installieren, falls es nicht bereits installiert ist. Du kannst entweder die aktuelle Version Node.js oder die LTS-Version installieren.

Eine gute Idee ist es auch für Node-RED einen eigenen User anzulegen, da einige Nodes nicht sauber installiert werden können wenn Node-RED unter root installiert wurde. Grade beim RaspberryPI sind Probleme bekannt wenn Node-RED unter dem User pi installiert ist.

Die aktuelle Version

sudo apt-get install curl software-properties-common
curl -sL https://deb.nodesource.com/setup_11.x | sudo bash -

Die LTS Version

sudo apt-get install curl software-properties-common
curl -sL https://deb.nodesource.com/setup_10.x | sudo bash -

Installation der gewählten Node.JS und nmp Version

Nach dem Hinzufügen der erforderlichen PPA-Datei kannst du das Nodejs-Paket installieren. NPM wird auch mit installiert. Der folgende Befehl installiert auch viele andere abhängige Pakete auf deinem System.

sudo apt-get install nodejs

Testen der Versionen

Überprüfe nach Abschluss der Installation die installierte Version von Node.js und NPM. Weitere Informationen zur aktuellen Version findest du auf der offiziellen Website von node.js.

node -v

Ergebnis

v11.11.0

npm -v

Ergebnis

6.9.0

Damit ist auf deinem System Node.js und npm installiert und du kannst weiter zur Installation von Node-RED gehen.

Um die Pakete aktuell zu halten ist es gut wenn man das Paket npm-check-updates gleich mit installiert.

npm install -g npm-check-updates

So kann man recht schnell mittels

ncu -u

die vorhandenen Paketabhängigkeiten aktualisieren und mittels

npm install

die aktuellen Versionen nachladen.

Node-RED

Node-RED lässt sich am einfachsten installieren, indem du den mit Node.js gelieferten Node Package Manager npm verwendest. Durch die Installation als globales Modul wird der Befehl Node-Red zu deinem Systempfad hinzugefügt:

sudo npm install -g --unsafe-perm node-red

Nun kann durch eingeben von node-red die Umgebung gestartet werden

node-red

11 Mar 15:52:03 – [info]

Welcome to Node-RED

11 Mar 15:52:03 – [info] Node-RED version: v0.16.2
11 Mar 15:52:03 – [info] Node.js version: v11.11.0
11 Mar 15:52:03 – [info] Linux 4.13.0-38-generic x64 LE
11 Mar 15:52:03 – [info] Loading palette nodes
11 Mar 15:52:03 – [warn] ——————————————————
11 Mar 15:52:03 – [warn] [rpi-gpio] Info : Ignoring Raspberry Pi specific node
11 Mar 15:52:03 – [warn] [mqtt] Error: Cannot find module ‘isarray’
11 Mar 15:52:03 – [warn] [feedparse] Error: Cannot find module ‘isarray’
11 Mar 15:52:03 – [warn] ——————————————————
11 Mar 15:52:03 – [info] Settings file : /home/frank/.node-red/settings.js
11 Mar 15:52:03 – [info] User directory : /home/frank/.node-red
11 Mar 15:52:03 – [info] Flows file : /home/frank/.node-red/flows_Buero.json
11 Mar 15:52:03 – [info] Creating new flow file
11 Mar 15:52:03 – [info] Starting flows
11 Mar 15:52:03 – [info] Started flows
11 Mar 15:52:03 – [info] Server now running at http://127.0.0.1:1880/

Damit läuft der Server und kann über http://127.0.0.1:1880/ erreicht werden.

Wenn du auf deinem System Node-RED automatisch starten möchtest ist eine node-red.service Datei notwendig. Lege diese unter /etc/systemd/system/ an.

nano  /etc/systemd/system/node-red.service

Und befülle diese mit folgendem Inhalt:

# systemd service file to start Node-RED

[Unit]
Description=Node-RED graphical event wiring tool.
Wants=network.target
Documentation=http://nodered.org/docs/hardware/raspberrypi.html

[Service]
Type=simple
# Run as normal pi user - feel free to change...
User=nodered
Group=nodered
WorkingDirectory=/opt/node-red/
Nice=10
#Environment="NODE_OPTIONS=--max_old_space_size=256"
# uncomment and edit next line if you need an http proxy
#Environment="HTTP_PROXY=my.httpproxy.server.address"
# uncomment the next line for a more verbose log output
#Environment="NODE_RED_OPTIONS=-v"
#ExecStart=/usr/bin/env node $NODE_OPTIONS red.js $NODE_RED_OPTIONS
ExecStart=/usr/bin/env node red -s /opt/node-red/settings.js
# Use SIGINT to stop
KillSignal=SIGINT
# Auto restart on crash
Restart=on-failure
# Tag things in the log
SyslogIdentifier=Node-RED
#StandardOutput=syslog

[Install]
WantedBy=multi-user.target

Passe das WorkingDirectory=/opt/node-red/ und das Verzeichnis in dem die settings.js zu finden ist beim Startbefehl ExecStart=/usr/bin/env node red -s /opt/node-red/settings.jsan deine Installation an.

Nun kannst du es mittels der folgenden beiden Befehle aktivieren:

sudo systemctl daemon-reload
sudo systemctl enable node-red.service

Nun startet Node-RED bei jedem Systemstart gleich mit und du kannst es im Browser unter http://127.0.0.1:1880/ aufrufen.

Möchtest du die Sicherheit erhöhen kannst du die Configuration unter <install-dir>/settings.js (meistens ~/.node-red/settings.js) anpassen. Eine ausführliche Anleitung der Einstellungen findest du auf der Homepage von Node-RED

Notwendige Node

Damit wir nun auf Daten des TTN (TheThingsNetwork) zugreifen können ist mindestens der Node node-red-contrib-ttn und node-red-contrib-influxdb um auch Daten in die InfluxDB zu schreiben.

cd <Install Verzeichnis von node-red>
npm install node-red-contrib-ttn
npm install node-red-contrib-influxdb

Die beiden Module werden hier und hier beschrieben, lesenswert aber nicht zwingend erforderlich.

Sollte sich, wie bei einigen ein Problem ergeben das “node-red-contrib-ttn” nicht installiert werden kann kann dieser Beitrag helfen: https://www.thethingsnetwork.org/forum/t/can-not-install-node-red-contrib-ttn-on-bluemix/13157/6

Damit haben wir eine Node-RED Instanz eingerichtet und können uns im folgenden Beitrag um die Flows der Nucleon BaseNodes kümmern.

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.