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
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
Einmaliges Starten:
node-red-start
Damit node-red direkt beim Start des RaspberryPis auch startet:
systemctl enable nodered.service
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
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)
- node-red-contrib-shelly zum Auslesen der PV Erzeugung von einem Shelly (nur benötigt für Variante 1)
- node-red-contrib-modbus zum Schreiben der Daten mittels Modbus in den Fronius Wechselrichter
- node-red-contrib-buffer-parser zum einfachen Konvertieren von Registern zu lesbaren Werten und zurück (optional)
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!)
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
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.)
- Shelly IP Adresse im Node anpassen
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.)
- 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.localnicht aufgelöst werden kann, muss die tatsächliche IP der Ladestation eingetragen werden
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
Anschließend kann man den Unterschied zwischen SolarWeb und dem Fronius Wechselrichter sehen.
In dem Fall, wurde ein PV-Erzeuger (Variante 1) eingebunden:

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