Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Node-RED
Beschreibung
https://nodered.org/
Installation
Node-RED ist auf dem VZ-Raspberry-Image nicht vorinstalliert. Die folgende Beschreibung orientiert sich an der englischen Originalanleitung.
sudo apt-get install build-essential python-rpi.gpio bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)
Um Node-RED als Hintergrunddienst einzurichten folgende Befehle nacheinander ausführen:
sudo wget https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/nodered.service -O /lib/systemd/system/nodered.service sudo wget https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/node-red-start -O /usr/bin/node-red-start sudo wget https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/node-red-stop -O /usr/bin/node-red-stop sudo chmod +x /usr/bin/node-red-st* sudo systemctl daemon-reload
Man kann Node-RED nun an der Kommandozeile mit
node-red-start
aufrufen und mit
node-red-stop
beenden.
Um den Dienst beim Boot automatisch zu starten:
sudo systemctl enable nodered.service
Editor
Um Node-RED zu programmieren wird über einen Browser der Editor aufgerufen. Es muss die IP-Adresse des RaspberryPi eingefügt werden:
http://IP_des_Rpi:1880/
paar Worte zum Import
Anbindung
Es gibt diverse Möglichkeiten ein- und ausgehende Daten zwischen Volkszähler und Node-RED auszutauschen.
Push-Server
Für Echtzeitdaten eignet sich zum Beispiel der Push-Server als Datenquelle. Zählerstände und Impulseingänge werden in Leistung umgerechnet. Es werden nur Kanäle ausgeliefert die in der Middleware angelegt sind. Parallelbetrieb mit Push fürs Frontend ist möglich.
Dazu wird beim Push-Server die zusätzliche websocket-Ausgabe aktiviert:
sudo nano /var/www/volkszaehler.org/etc/volkszaehler.conf.php
- volkszaehler.conf.php
$config['push']['routes']['websocket'] = array('/socket');
Danach den Push-Server neu starten:
sudo systemctl stop push-server sudo systemctl start push-Server
In Node-RED wird ein websocket-Eingang angelegt. code für Import
vzlogger
Die Echtzeitdaten des vzloggers können auch direkt an Node-RED übergeben werden. Es werden für alle channel (auch api: „none“) die Rohdaten (Zählerstände, Impulse) ausgegeben.
parllelbetrieb PS?
Dazu die vzlogger.conf erweitern:
sudo nano /ect/vzlogger.conf
- vzlogger.conf
"push": [ { "url": "http://127.0.0.1:1880/vzpush" } ],
In Node-RED wird ein http-Input mit http-Response angelegt:
- flow
[ { "id": "501f06e2.822648", "type": "http in", "z": "b4a68325.c47d9", "name": "", "url": "/vzpush", "method": "post", "swaggerDoc": "", "x": 125, "y": 132, "wires": [ [ "aca936f6.646be8", "72ead14f.819f1" ] ] }, { "id": "aca936f6.646be8", "type": "debug", "z": "b4a68325.c47d9", "name": "", "active": false, "console": "false", "complete": "true", "x": 323, "y": 192, "wires": [] }, { "id": "72ead14f.819f1", "type": "http response", "z": "b4a68325.c47d9", "name": "", "x": 322, "y": 133, "wires": [] } ]
VZ-API
Beispielanwendungen
InfluxDB per MQTT
Daten vom Push-Server im MQTT-Protokoll an InfluxDB weiterleiten:
Node-RED Library: Push Volkszaehler Readings to Influxdb via MQTT