Skip to content

MatthiasOs/raspberry-pi-fronius-zaehler

Repository files navigation

Übersicht der Anwendungen: Folie1.JPG

Wie man ein RaspberryPi als Zähler (Erzeuger/Verbraucher) in Fornius über node-red einbindet

SD Karte mit Raspberry Imager flashen (SSH aktivieren), hier direkt ein WLAN angeben, welches man bei der weiteren Einrichtung verwenden will. (Später kann man dann noch das WLAN einrichten, welches dann Vorort existiert). Nach der Installation per SSH auf das PI verbinden

Node-Red installieren:

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

Auf die Frage Install Pi specific nodes? mit "N" antworten. (Das sind Nodes mit denen man Hardware, zB GPIO steuern kann)

Wenn Node-RED Settings File initialisation kommt, die Fragen beantworten.

Node-Red ist dann über den Port 1880 erreichbar: Beispiel: http://192.168.178.44:1880

Die Logs kann man über node-red-log sehen

Starten nodered

Einmaliges Starten:

 node-red-start

Damit node-red direkt beim Start des RaspberryPis auch startet:

 systemctl enable nodered.service

Ändern des Node-Red UI Ports

Wenn man den standard Port ändern will muss man die settings.js editieren:

nano ~/.node-red/settings.js

Folgende Zeile ggf einkommentieren und den Port anpassen:

uiPort: process.env.PORT || 1881,

Speichern und Schließen: STRG+X -> Y -> Enter

WLAN (optional)

Damit das RaspberryPi sich direkt mit dem WLAN am Ort wo man es verwenden will verbindet, muss man vorher die Verbindung mit dem NetworkManager einrichten einrichten:

sudo nmtui

(Manuell müsste es auch gehen, dann muss man eine "<Wifi-Name>.nmconnection" Datei anlegen, siehe https://forums.raspberrypi.com/viewtopic.php?t=360175)

Dependecies in node-red Palette installieren

Externen Zähler in Fronius einbinden

Damit im Fronius SolarWeb neben dem Fronius Wechselrichter auch ein externer Erzeuger (zB Variante 1) oder Verbraucher (zB Variante 2) berücksichtigt wird, muss man diese dem Fronius Wechselrichter als externen Energiezähler (GEN24) zugänglich machen.

Dazu wird ein ModbusTCP Server angelegt der den Energiezähler so simuliert, dass der Fronius Wechselrichter sich aus dem Register dieses Modbus Servers die Werte holen kann. In die Register des Modbus Server muss man neben Standardwerte zur Identifikation als Energiezähler noch den benötigten AC Power value (Total) [W] des Erzeugers/Verbrauchers in die dafür vorgesehen Register schreiben. Die Register Mappings können hier von Fronius runtergeladen werden, oder siehe im Anhang. (Beachten ob im Fronius Wechselrichter "Float" oder "Int+SF" eingestellt ist!)

Modbus Port

Fronius erwartet den Modbus Server auf Port 502. Da in Linux Ports <= 1024 eigentlich nur vom Root benutzt werden dürfen, muss man die Port Freigabe erlauben:

sudo setcap 'cap_net_bind_service=+ep' /usr/bin/node

Anschließend Node-Red neustarten:

node-red-restart

Variante 1: externer Erzeuger (zB Balkonwechselrichter)

In node-red den Flow (angelehnt an diesen flow aus dem node-red Forum) importieren. Nach einem boot/deployment werden automatisch die einmalig benötigten Daten in den Modbus Server geschrieben. Außerdem wird jede Sekunde beim Shelly die Erzeugungsdaten abgefragt und diese (muss negativ sein, da Erzeugung) in den Modbus Server geschrieben. (Es stehen weitere lesende Operationen im flow bereit, diese werden aber für den Anwendungsfall nicht benötigt und sie nur zur Kontrolle da.)

Nach dem Import des flows muss noch folgendes gemacht werden:

  • Shelly IP Adresse im Node anpassen

Variante 2: externer Verbraucher (zB Hardy Barth Ladepunkt)

In node-red den Flow (angelehnt an diesen flow aus dem node-red Forum) importieren. Nach einem boot/deployment werden automatisch die einmalig benötigten Daten in den Modbus Server geschrieben. Außerdem wird jede Sekunde ein http request an die Ladesäule gesendet und die Verbrauchsdaten abgefragt und diese (muss positiv sein, da Verbrauch) in den Modbus Server geschrieben. (Es stehen weitere lesende Operationen im flow bereit, diese werden aber für den Anwendungsfall nicht benötigt und sie nur zur Kontrolle da.)

Nach dem Import des flows muss noch folgendes gemacht werden:

  • http request Adresse im Node überprüfen, müsste aber generisch für Anwendungsfälle mit nur einem Ladepunkt so passen
  • wenn die IP Adresse http://ecb1.local nicht aufgelöst werden kann, muss die tatsächliche IP der Ladestation eingetragen werden

Anzeige im SolarWeb

Im Web Interface des Fronius Wechselrichters muss man nun noch den Modbus Server als Energiezähler hinzufügen:

  • RaspberryPi IP Adresse mit Port 502 und UnitID 3

Energiezaehler im Fronius

Anschließend kann man den Unterschied zwischen SolarWeb und dem Fronius Wechselrichter sehen. In dem Fall, wurde ein PV-Erzeuger (Variante 1) eingebunden: Vergleich Fronius Wechselrichter und SolarWeb

WORK IN PROGRESS: Nice to have

Reboot/Shutdown über node-red

Damit man das Raspberry Pi über node-red neustarten und ausschalten kann, muss man den Flow importieren.

About

Wie man ein Raspberry Pi mit docker und node-red einrichtet

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •