Victron DIY-Guide Teil 6 – PV-Inverter in Venus OS integrieren
Heute zeige ich euch vier Wege, um einen PV-Inverter in Venus OS zu integrieren. Da das System so super flexibel ist, kann man so gut wie alle Devices nutzbar machen, egal ob Venus OS “von Haus aus” mit dem Inverter sprechen kann oder nicht.
Das geht sogar soweit, dass man Hilfe von NodeRED und MQTT, welche auf dem Grundsystem verfügbar sind, jeden x-beliebigen Messwert zuspielen kann. Wie das geht, erfahrt ihr im nachfolgenden Video.
Links aus dem Video
3:44
Victron Energy – Integrating with SolarEdge (externer Link)
4:36
Github / henne49 / dbus-opendtu (externer Link)
7:22
Github / mr-manuel / venus-os_dbus-mqtt-pv
10:37
ssh root@192.168.3.177
10:39 (BEFEHL HAT EIN UPDATE ERHALTEN)
wget -P /tmp https://github.com/mr-manuel/venus-os_dbus-mqtt-pv/archive/refs/heads/master.zip
10:45 (BEFEHL HAT EIN UPDATE ERHALTEN)
unzip /tmp/master.zip -d /tmp/
10:48 (BEFEHL HAT EIN UPDATE ERHALTEN)
mv /tmp/venus-os_dbus-mqtt-pv-master/dbus-mqtt-pv /data/etc/
10:50
cp /data/etc/dbus-mqtt-pv/config.sample.ini /data/etc/dbus-mqtt-pv/config.ini
10:56
nano /data/etc/dbus-mqtt-pv/config.ini
12:19
bash /data/etc/dbus-mqtt-pv/install.sh
12:43
NodeRED Flows Venus OS PV Inverter (1039 Downloads )
15:25
Github / mr-manuel / venus-os_dbus-mqtt-battery
6 Kommentare
moin Jörg,
auch wenn das Video schon etwas älter ist, das Thema der PV-Inverter Integration in Venus OS wird sicher noch länger Interessant bleiben!
ich finde den Weg über MQTT am besten, da hier im Grunde alle Datenschleudern zusammenlaufen und ich mir nur die passenden rauspicken muss.
Nun hab ich das plugin und den Flow installiert und stehe vor folgendem Problem oder sehe den Wald vor lauter Bäumen nicht…ich habe meinen Solax Inverter über WLAN mit Hilfe eines RS485 Moduls angebunden, dieses schickt mit idealerweise alle benötigten Werte schon in mein Venus MQTT, (Tasmota macht es möglich;-)),
Das Intervall lag ursprünglich bei 10-300 Sekunden, was für Regelzwecke etwas lahm ist.Nun konnte ich auch hier über den Konsolenbefehl “Powerdelta xxx” die Schlagzahl brauchbar erhöhen.
In einem MQTT Explorer sehe ich, wie im Venus MQTT unter “tele” die Daten brav und zügig einlaufen sobald sich eine regelrelevante Änderung ergibt, doch nun stehe ich auf dem Schlauch, wie kriege ich die Daten in mein NodeRed bzw. als emuliertes PV Gerät in die GUI meiner GX Geräte? Es liegt ja schon alles im JSON Format im mqtt und ich vermute über eine entsprechende Node kann ich das extrahieren und dem Plugin zuführen, da bin ich allerdings nicht Sattelfest genug um etwaige funktionen zu basteln, bestenfalls verändern…was hat es mit dem Topic auf sich?
beste Grüße
Ergänzung:
ich kriege die Daten vom PV Inverter in Node Red über eine mqtt in Node zu fassen, diese gibt das auch als payload/json string aus, ich lasse da als Platzhalter erstmal eine debug node mitlaufen, blöd nur, daß man diese Daten nicht auf eine victroninstanz weitergeben kann und seinen eigenen PV Inverter bastelt..Das Plugin von mrmanuel kapituliert hier, da es vermutlich eine andere Reihenfolge erwartet…das Topic ist nur bedingt anpassbar…
hallo Jörg,
zuerst, eine tolle Anleitung! Ich bin fast am ziel aber eben nu fast, ich binde einen go-e controller als PV ein, weil über dieses Messgerät alle Inverter zusammenlaufen. Ich nutze daten einer HTTTP API des Controlers und wandle diese in NODE RED um das SIE deinen DATEN Ähneln, allerdings bin ich damit bislang nicht erfolgreich hier scheint noch ein hacken verborgen.
nachfolgen die function in meinem node, eventuell entdeckst du auf anhieb woran es liegen könnte:
// Node-RED Funktion zur Erstellung der Phasen L1, L2, L3 aus Objekten 3, 4 und 5
var message = {
// Zuordnung der P-Werte aus den Objekten zu den entsprechenden Phasen
pv:{
power: Number(msg.payload.isv[3].p) + Number(msg.payload.isv[4].p) + Number(msg.payload.isv[5].p),
L1: {
power: msg.payload.isv[3].p,
},
L2: {
power: msg.payload.isv[4].p,
},
L3: {
power: msg.payload.isv[5].p,
},
},
};
//msg.topic = enphase/envoy-s/meters;
// Setzen des Ausgabe-msg mit den Phasen
node.status({fill: “blue”, shape: “ring”, text: “Power: ” + ((Number(msg.payload.isv[3].p) + Number(msg.payload.isv[4].p) + Number(msg.payload.isv[5].p)).toFixed(2)).toString() + ” [W]”});
return {payload: message};
danke vorab Gruss Torsten
Noch ne Frage ich habe ein Cerbo GX und habe dort jetzt die plugins installiert darunter node red und das PV plugin. Was ich noch vermisse ist der MQTT Broker. Kann ich den ebenfalls auf dem Cerbo installiereon oder ist er bereits installiert?
Danke vorab für deine Hilfe
Danke Jörg ich habs geschafft! Somit wäre jetzt auch ein GO-e Controller eingebunden.
Hallo Jörg,
habe die Teile 4 und 6 des Victron DIY-Guide mehrere Male geschaut, bekomme es aber nicht zum laufen. Klingt jetzt dumm, da ich nicht wirklich fit in dem Thema bin, aber welchen Wert erwarten die beiden Erweiterungen von Mr Manuel ?
Die beiden Werte kommen über Modbus von einem Solarlog und werden in MQTT Explorer so angezeigt:
enphase
envoy-s
meters = [2910,0]
pv = [1501,0]
in putty bringt er mit tail folgende Fehlermeldungen:
2024-10-06 14:36:42.437471500 ERROR:root:Received JSON MQTT message does not include a grid object. Expected at least: {“grid”: {“power”: 0.0}”}
2024-10-06 14:37:15.499736500 ERROR:root:Received JSON MQTT message does not include a pv object. Expected at least: {“pv”: {“power”: 0.0}”}
Nun weiß ich leider nichtmal, wie ich Chat GPT fragen soll zwecks eines Quellcodes für die function Node. Kannst du mir hier weiterhelfen ?
Gruß Christian