howto:node-red
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
howto:node-red [2017/04/10 19:21] – angelegt jau | howto:node-red [2020/04/20 18:50] – [Push-Server einrichten] einfacher boenki | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Node-RED ====== | ====== Node-RED ====== | ||
- | //Beschreibung/ | + | [[https://nodered.org/|Node-RED]] ist ein Programmiertool dessen Editor per Browser aufgerufen werden kann. Er bietet eine einfache Möglichkeit über Knotenpunkte (nodes) Datenflüsse (flows) zu erstellen.\\ |
- | [[https://nodered.org/]] | + | Seine schlanke Runtime-Umgebung, |
===== Installation ===== | ===== Installation ===== | ||
- | Node-RED ist auf dem VZ-Raspberry-Image nicht vorinstalliert. Die folgende Beschreibung orientiert sich an der [[https:// | + | Node-RED ist auf dem VZ-RaspberryPi-Image nicht vorinstalliert. Die folgende Beschreibung orientiert sich an der [[https:// |
< | < | ||
- | sudo apt-get install build-essential python-rpi.gpio | + | sudo apt-get install build-essential python-rpi.gpio |
bash <(curl -sL https:// | bash <(curl -sL https:// | ||
</ | </ | ||
+ | ==== Hintergrunddienst ==== | ||
Um Node-RED als Hintergrunddienst einzurichten folgende Befehle nacheinander ausführen: | Um Node-RED als Hintergrunddienst einzurichten folgende Befehle nacheinander ausführen: | ||
< | < | ||
Zeile 24: | Zeile 25: | ||
Um den Dienst beim Boot automatisch zu starten: | Um den Dienst beim Boot automatisch zu starten: | ||
< | < | ||
+ | |||
+ | ==== Volkszaehler nodes ==== | ||
+ | Es gibt ein paar vorgefertigte nodes für komplexere Abfragen. Zu finden bei [[http:// | ||
+ | < | ||
+ | cd ~ | ||
+ | git clone git:// | ||
+ | cd ~/.node-red | ||
+ | npm install ~/ | ||
+ | node-red-stop | ||
+ | node-red-start | ||
+ | </ | ||
===== Editor ===== | ===== Editor ===== | ||
Zeile 29: | Zeile 41: | ||
< | < | ||
- | //paar Worte zum Import// | + | Einen Flow importiert man indem man den gewünschten Code in der Zwischenablage kopiert. Dann im Editor oben rechts das Menu (3 Querbalken) öffnen, |
+ | Um die Änderung zu übernehmen die, nun rote, Schaltfläche Deploy betätigen. | ||
---- | ---- | ||
===== Anbindung ===== | ===== Anbindung ===== | ||
Es gibt diverse Möglichkeiten ein- und ausgehende Daten zwischen Volkszähler und Node-RED auszutauschen. | Es gibt diverse Möglichkeiten ein- und ausgehende Daten zwischen Volkszähler und Node-RED auszutauschen. | ||
+ | * [[howto: | ||
+ | * [[howto: | ||
+ | * [[howto: | ||
+ | * [[howto: | ||
+ | * [[howto: | ||
- | ==== Push-Server ==== | + | ==== Push-Server |
Für Echtzeitdaten eignet sich zum Beispiel der [[software/ | Für Echtzeitdaten eignet sich zum Beispiel der [[software/ | ||
- | Dazu wird beim Push-Server | + | Seit Version 2.0 ist der Push-Server |
- | < | + | < |
<code | volkszaehler.conf.php> | <code | volkszaehler.conf.php> | ||
$config[' | $config[' | ||
</ | </ | ||
Danach den Push-Server neu starten: | Danach den Push-Server neu starten: | ||
- | < | + | < |
- | sudo systemctl start push-Server</ | + | |
- | In Node-RED wird ein websocket-Eingang angelegt. | + | |
- | // code für Import // | + | |
- | ==== vzlogger ==== | + | ==== Push-Server empfangen ==== |
- | Die Echtzeitdaten des [[software/ | + | Zum Empfang der Daten wird der PS [[howto/ |
- | // | + | {{ : |
+ | |||
+ | <code | flow> | ||
+ | [ | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | [ | ||
+ | " | ||
+ | ] | ||
+ | ] | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ] | ||
+ | </ | ||
+ | |||
+ | ==== Push-Server senden ==== | ||
+ | Man kann auch Messwerte / Daten von Node-RED an den Push-Server übermitteln, | ||
+ | <code | json message> | ||
+ | Port und URL entsprechen der Standard-Konfiguration. | ||
+ | < | ||
+ | {{ : | ||
+ | |||
+ | <code | flow> | ||
+ | [ | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | [ | ||
+ | " | ||
+ | ] | ||
+ | ] | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | [ | ||
+ | " | ||
+ | ] | ||
+ | ] | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | [ | ||
+ | " | ||
+ | ] | ||
+ | ] | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ], | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | [ | ||
+ | " | ||
+ | ] | ||
+ | ] | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | [ | ||
+ | " | ||
+ | ] | ||
+ | ] | ||
+ | } | ||
+ | ] | ||
+ | </ | ||
+ | |||
+ | ==== vzlogger | ||
+ | {{ : | ||
+ | Die Echtzeitdaten des [[software/ | ||
Dazu die vzlogger.conf erweitern: | Dazu die vzlogger.conf erweitern: | ||
Zeile 107: | Zeile 300: | ||
</ | </ | ||
- | ==== VZ-API ==== | + | ==== API: POST data ==== |
+ | Um Messwerte / Daten von Node-RED an die Middleware zu übermitteln muss die URL entprechend (siehe [[/ | ||
+ | < | ||
+ | {{ : | ||
+ | <code | flow> | ||
+ | [ | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | [ | ||
+ | " | ||
+ | ] | ||
+ | ] | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | [ | ||
+ | " | ||
+ | ] | ||
+ | ] | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | [ | ||
+ | " | ||
+ | ] | ||
+ | ] | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ], | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | [ | ||
+ | " | ||
+ | ] | ||
+ | ] | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | [ | ||
+ | " | ||
+ | ] | ||
+ | ] | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ], | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | [ | ||
+ | " | ||
+ | ] | ||
+ | ] | ||
+ | } | ||
+ | ] | ||
+ | </ | ||
- | ---- | + | ==== API: GET data ==== |
+ | Um Parameter / Daten aus Node-RED von der Middleware zu erhalten können wir auf die [[/ | ||
+ | {{ : | ||
+ | <code | flow> | ||
+ | [ | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | [ | ||
+ | " | ||
+ | ] | ||
+ | ] | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | [ | ||
+ | " | ||
+ | ] | ||
+ | ] | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | [ | ||
+ | " | ||
+ | ] | ||
+ | ] | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | [ | ||
+ | " | ||
+ | ] | ||
+ | ] | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ] | ||
+ | </ | ||
+ | |||
+ | ---- | ||
===== Beispielanwendungen ===== | ===== Beispielanwendungen ===== | ||
+ | |||
+ | ==== Heizungssystem über eBus auslesen ==== | ||
+ | EBus ist ein serieller Bus der beispielsweise von Vaillant verwendet wird. Er kann mit passender Hardware gelesen werden um z.B. Temperaturwerte einer Therme zu loggen. | ||
+ | * Hardware als [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * Das Zusatpaket [[https:// | ||
+ | |||
+ | ==== Temperatur / Lufteuchtigkeit mit ESP8266 per MQTT ==== | ||
+ | Verschiedene Temperatur / Luftfeuchte Sensoren können am ESP8266 angeschlossen werden. Die Messwerte werden per MQTT verteilt. | ||
+ | Node-RED empfängt die Messwerte und sendet diese an den Volkszaehler. | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
==== InfluxDB per MQTT ==== | ==== InfluxDB per MQTT ==== | ||
Zeile 117: | Zeile 572: | ||
[[http:// | [[http:// | ||
+ | ==== Stromzähler per Modbus auslesen ==== | ||
+ | Beispiel für [[/ | ||
+ | [[https:// |
howto/node-red.txt · Zuletzt geändert: 2023/07/07 21:11 von jau