Benutzer-Werkzeuge

Webseiten-Werkzeuge


howto:node-red

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
howto:node-red [2017/05/15 22:41] – Anbindungen deutlicher aufgeteilt jauhowto:node-red [2023/07/07 21:11] (aktuell) – [Volkszaehler nodes] Installation nicht aus dem git jau
Zeile 8: Zeile 8:
 <code> <code>
 sudo apt-get install build-essential python-rpi.gpio sense-hat sudo apt-get install build-essential python-rpi.gpio sense-hat
-bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)+bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
 </code> </code>
  
 +==== Hintergrunddienst ====
 Um Node-RED als Hintergrunddienst einzurichten folgende Befehle nacheinander ausführen: Um Node-RED als Hintergrunddienst einzurichten folgende Befehle nacheinander ausführen:
 <code> <code>
Zeile 24: Zeile 25:
 Um den Dienst beim Boot automatisch zu starten: Um den Dienst beim Boot automatisch zu starten:
 <code>sudo systemctl enable nodered.service</code> <code>sudo systemctl enable nodered.service</code>
 +
 +==== Volkszaehler nodes ====
 +Es gibt ein paar vorgefertigte nodes für komplexere Abfragen. Zu finden bei [[https://flows.nodered.org/node/node-red-contrib-volkszaehler|Node-Red in der Library]] und [[http://github.com/andig/node-red-contrib-volkszaehler|github]]. Um sie in Node-RED einzubinden sind nacheinander folgende Befehle an der Konsole einzugeben:
 +<code>
 +npm install node-red-contrib-volkszaehler
 +node-red-stop
 +node-red-start
 +</code>
  
 ===== Editor ===== ===== Editor =====
Zeile 38: Zeile 47:
   * [[howto:node-red#push-server_senden|NodeRED -> Push-Server]]   * [[howto:node-red#push-server_senden|NodeRED -> Push-Server]]
   * [[howto:node-red#vzlogger_empfangen|vzlogger -> NodeRED]]   * [[howto:node-red#vzlogger_empfangen|vzlogger -> NodeRED]]
-  * [[howto:node-red#apipost_data|Middleware -> NodeRED]] +  * [[howto:node-red#apipost_data|NodeRED -> Middleware]] 
-  * [[howto:node-red#apiget_data|NodeRED -> Middleware]]+  * [[howto:node-red#apiget_data|Middleware -> NodeRED]]
  
 ==== Push-Server einrichten ==== ==== Push-Server einrichten ====
 Für Echtzeitdaten eignet sich zum Beispiel der [[software/middleware/push-server|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. Für Echtzeitdaten eignet sich zum Beispiel der [[software/middleware/push-server|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.
  
-Der Push-Server muss, wie in der [[software/middleware/push-server#konfiguration|Anleitung]] beschrieben in Betrieb genommen werden. Die zusätzliche websocket-Ausgabe aktiviert man indem die vorhandene Zeile in der volkszaehler.conf.php geändert wird:+Seit Version 2.0 ist der Push-Server ab Haus aktiviert. In älteren Versionen muss er, wie in der [[software/middleware/push-server#konfiguration|Anleitung]] beschriebenin Betrieb genommen werden. Die zusätzliche websocket-Ausgabe aktiviert man indem die vorhandene Zeile in der volkszaehler.conf.php geändert wird:
 <code>sudo nano /var/www/volkszaehler.org/etc/volkszaehler.conf.php</code> <code>sudo nano /var/www/volkszaehler.org/etc/volkszaehler.conf.php</code>
 <code | volkszaehler.conf.php> <code | volkszaehler.conf.php>
Zeile 50: Zeile 59:
 </code> </code>
 Danach den Push-Server neu starten: Danach den Push-Server neu starten:
-<code>sudo systemctl stop push-server +<code>sudo systemctl restart push-server</code> 
-sudo systemctl start push-server</code>+ 
 +Und die Konfiguration des [[https://wiki.volkszaehler.org/software/middleware/push-server#vzlogger|vzlogger]] prüfen, ggf. nachbessern.
  
 ==== Push-Server empfangen ==== ==== Push-Server empfangen ====
 Zum Empfang der Daten wird der PS [[howto/node-red#push-server_einrichten|wie oben beschrieben]] eingerichtet und in Node-RED ein websocket-Eingang angelegt. Zum Empfang der Daten wird der PS [[howto/node-red#push-server_einrichten|wie oben beschrieben]] eingerichtet und in Node-RED ein websocket-Eingang angelegt.
-{{ :howto:node-red_pushserver.jpg?400|}}+{{ :howto:node-red_pushserver.jpg?500|}}
  
 <code | flow> <code | flow>
Zeile 232: Zeile 242:
  
 ==== vzlogger empfangen ==== ==== vzlogger empfangen ====
-{{ :howto:node-red_vzlogger.jpg?400|}} +{{ :howto:node-red_vzlogger.jpg?500|}} 
-Die Echtzeitdaten des [[software/controller/vzlogger|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.\\ +Die Echtzeitdaten des [[software/controller/vzlogger|vzloggers]] können auch direkt an Node-RED übergeben werden. Es werden für alle //channel// (auch //"api": "null"//) die Rohdaten (Zählerstände, Impulse) ausgegeben.\\
-//parllelbetrieb PS?//+
  
 Dazu die vzlogger.conf erweitern: Dazu die vzlogger.conf erweitern:
-<code>sudo nano /ect/vzlogger.conf</code>+<code>sudo nano /etc/vzlogger.conf</code>
 <code | vzlogger.conf> <code | vzlogger.conf>
 "push": [ "push": [
Zeile 443: Zeile 452:
  
 ==== API: GET data ==== ==== API: GET data ====
-//Austehend//+Um Parameter Daten aus Node-RED von der Middleware zu erhalten können wir auf die [[/howto/node-red#volkszaehler_nodes|fertigen VZ-nodes]] zurück greifen. 
 + 
 +{{ :howto:node-red_get_api.jpg?500|}} 
 +<code | flow> 
 +
 +    { 
 +        "id": "de7c28c5.414368", 
 +        "type": "uri", 
 +        "z": "815188ba.c35718", 
 +        "name": "", 
 +        "middleware": "792445ef.949aec", 
 +        "context": "data", 
 +        "format": "json", 
 +        "x": 158, 
 +        "y": 171, 
 +        "wires":
 +            [ 
 +                "4af40d51.a7c234" 
 +            ] 
 +        ] 
 +    }, 
 +    { 
 +        "id": "8911848d.d34a38", 
 +        "type": "inject", 
 +        "z": "815188ba.c35718", 
 +        "name": "", 
 +        "topic": "", 
 +        "payload": "true", 
 +        "payloadType": "bool", 
 +        "repeat": "", 
 +        "crontab": "", 
 +        "once": false, 
 +        "onceDelay": 0.1, 
 +        "x": 104, 
 +        "y": 78, 
 +        "wires":
 +            [ 
 +                "e6c60ef.b5cfdf" 
 +            ] 
 +        ] 
 +    }, 
 +    { 
 +        "id": "e6c60ef.b5cfdf", 
 +        "type": "template", 
 +        "z": "815188ba.c35718", 
 +        "name": "UUID", 
 +        "field": "uuid", 
 +        "fieldType": "msg", 
 +        "format": "handlebars", 
 +        "syntax": "plain", 
 +        "template": "c673b290-fdac-11e0-a470-1d9351203a00", 
 +        "output": "str", 
 +        "x": 247, 
 +        "y": 79, 
 +        "wires":
 +            [ 
 +                "de7c28c5.414368" 
 +            ] 
 +        ] 
 +    }, 
 +    { 
 +        "id": "4af40d51.a7c234", 
 +        "type": "http request", 
 +        "z": "815188ba.c35718", 
 +        "name": "", 
 +        "method": "GET", 
 +        "ret": "txt", 
 +        "url": "", 
 +        "x": 340, 
 +        "y": 172, 
 +        "wires":
 +            [ 
 +                "69c762a4.50c69c" 
 +            ] 
 +        ] 
 +    }, 
 +    { 
 +        "id": "69c762a4.50c69c", 
 +        "type": "debug", 
 +        "z": "815188ba.c35718", 
 +        "name": "", 
 +        "active": true, 
 +        "tosidebar": true, 
 +        "console": false, 
 +        "tostatus": false, 
 +        "complete": "false", 
 +        "x": 305, 
 +        "y": 255, 
 +        "wires": [] 
 +    }, 
 +    { 
 +        "id": "792445ef.949aec", 
 +        "type": "middleware", 
 +        "z": "", 
 +        "middleware": "https://demo.volkszaehler.org/middleware.php" 
 +    } 
 +
 +</code>
  
 ---- ----
 ===== Beispielanwendungen ===== ===== Beispielanwendungen =====
 +
 +==== TP-Link HS110 ====
 +Die [[https://www.tp-link.com/de/home-networking/smart-plug/hs110/|HS110 von TP-Link]] ist eine Funksteckdose mit WLAN, Schaltaktor und Leistungsmessung. Man kann sie wowohl steuern als auch auslesen.\\
 +Zur Konfiguration ist leider die Kasa-App nötig, man kommt aber auch [[https://www.tp-link.com/de/support/faq/2437/|ohne die Cloud]] zurecht.\\
 +[[https://www.photovoltaikforum.com/thread/173831-shelly-plus-1pm-mit-volkszähler-verbinden/?postID=2618376#post2618376]]
  
 ==== Heizungssystem über eBus auslesen ==== ==== 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. 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://wiki.fhem.de/wiki/EBUS|Bausatz]] oder [[https://www.eservice-online.de/shop/ebus/135/1-wire-hub-platine|Fertiglösung]]   * Hardware als [[https://wiki.fhem.de/wiki/EBUS|Bausatz]] oder [[https://www.eservice-online.de/shop/ebus/135/1-wire-hub-platine|Fertiglösung]]
-  * [[https://github.com/john30/ebusd|eBUS deamon]] zum Auswerten des Protokolls.+  * [[https://github.com/john30/ebusd|eBUS daemon]] zum Auswerten des Protokolls.
   * [[https://github.com/john30/ebusd/issues/58|Konfiguration und Beispiel]] für Node-RED.   * [[https://github.com/john30/ebusd/issues/58|Konfiguration und Beispiel]] für Node-RED.
   * Das Zusatpaket [[https://flows.nodered.org/node/node-red-contrib-ui|node-red-contrib-ui]] ist erforderlich.   * Das Zusatpaket [[https://flows.nodered.org/node/node-red-contrib-ui|node-red-contrib-ui]] ist erforderlich.
Zeile 464: Zeile 575:
 Daten vom [[software/middleware/push-Server|Push-Server]] im [[https://de.wikipedia.org/wiki/MQTT|MQTT-Protokoll]] an [[https://en.wikipedia.org/wiki/InfluxDB|InfluxDB]] weiterleiten:\\ Daten vom [[software/middleware/push-Server|Push-Server]] im [[https://de.wikipedia.org/wiki/MQTT|MQTT-Protokoll]] an [[https://en.wikipedia.org/wiki/InfluxDB|InfluxDB]] weiterleiten:\\
 [[http://flows.nodered.org/flow/dc9754a796fac49c918ab5a94f0af58a|Node-RED Library: Push Volkszaehler Readings to Influxdb via MQTT]] [[http://flows.nodered.org/flow/dc9754a796fac49c918ab5a94f0af58a|Node-RED Library: Push Volkszaehler Readings to Influxdb via MQTT]]
 +
 +==== Stromzähler per Modbus ====
 +Beispiel für [[/hardware/channels/meters/power/eastron_sdm630_modbus|Eastron SDM630]]:\\
 +[[https://flows.nodered.org/flow/eb051b360f09c315ac961f85b94a0c05|Node-RED Library: SDM630 Modbus Gateway - Starter Kit]]
 +
 +==== Messwerte von Schaltaktor per MQTT ====
 +Messwerte von Modulwechselrichtern an [[https://shelly.cloud/shelly-25-wifi-smart-relay-roller-shutter-home-automation/|Shelly 2.5]] Funkaktoren erfasst und per [[https://de.wikipedia.org/wiki/MQTT|MQTT]] an Volkszähler weitergereicht:\\
 +[[https://www.photovoltaikforum.com/thread/142674-shelly-mqtt-integrieren/]]
howto/node-red.1494880895.txt.gz · Zuletzt geändert: 2017/05/15 22:41 von jau