Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision |
howto:node-red [2017/05/02 21:45] – volkszaehler_claus-beckenbauer.de | howto:node-red [2018/05/13 17:09] – SDM630 jau |
---|
===== 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:node-red#push-server_empfangen|vzlogger -> Push-Server -> NodeRED]] |
| * [[howto:node-red#push-server_senden|NodeRED -> Push-Server]] |
| * [[howto:node-red#vzlogger_empfangen|vzlogger -> NodeRED]] |
| * [[howto:node-red#apipost_data|NodeRED -> Middleware]] |
| * [[howto:node-red#apiget_data|Middleware -> NodeRED]] |
| |
==== Push-Server ==== | ==== Push-Server einrichten ==== |
{{ :howto:node-red_pushserver.jpg?400|}} | |
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. |
| |
Danach den Push-Server neu starten: | Danach den Push-Server neu starten: |
<code>sudo systemctl stop push-server | <code>sudo systemctl stop push-server |
sudo systemctl start push-Server</code> | sudo systemctl start push-server</code> |
| |
=== empfangen === | ==== Push-Server empfangen ==== |
Zum Empfang der Daten wird 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|}} |
| |
<code | flow> | <code | flow> |
</code> | </code> |
| |
=== senden === | ==== Push-Server senden ==== |
Man kann auch Messwerte / Daten von Node-RED an den Push-Server übermitteln, dazu muss im flow eine json message aufgebaut und versendet werden. | Man kann auch Messwerte / Daten von Node-RED an den Push-Server übermitteln, dazu muss im flow eine json message aufgebaut und versendet werden. [[howto/node-red#push-server_einrichten|Den PS wie oben beschrieben einrichten.]] |
<code | json message>{"data":[{"uuid":"2e56fe60-e265-11e6-8bbc-a77e71764858","tuples":[[1493509724073, 5]]}]}</code> | <code | json message>{"data":[{"uuid":"2e56fe60-e265-11e6-8bbc-a77e71764858","tuples":[[1493509724073, 5]]}]}</code> |
Port und URL entsprechen der Standard-Konfiguration. | Port und URL entsprechen der Standard-Konfiguration. |
</code> | </code> |
| |
==== vzlogger ==== | ==== vzlogger empfangen ==== |
{{ :howto:node-red_vzlogger.jpg?400|}} | {{ :howto:node-red_vzlogger.jpg?400|}} |
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> | </code> |
| |
==== VZ-API ==== | ==== API: POST data ==== |
| |
=== POST data === | |
Um Messwerte / Daten von Node-RED an die Middleware zu übermitteln muss die URL entprechend (siehe [[/development/api/reference]]) aufgebaut werden. | Um Messwerte / Daten von Node-RED an die Middleware zu übermitteln muss die URL entprechend (siehe [[/development/api/reference]]) aufgebaut werden. |
<code>http://raspberrypi/middleware.php/data/{{uuid}}.json?ts={{timestamp}}&value={{payload}}</code> | <code>http://raspberrypi/middleware.php/data/{{uuid}}.json?ts={{timestamp}}&value={{payload}}</code> |
</code> | </code> |
| |
| ==== API: GET data ==== |
| //Ausstehend// |
| |
| ---- |
===== Beispielanwendungen ===== | ===== Beispielanwendungen ===== |
| |
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. |
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 auslesen ==== |
| 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]] |