Hi,
Bei heizen und kühlen ein Symo 20-M-3 und ein Victron Multiplus II - 5000 über den Umweg über eine Klimanalage und eine Wärmepumpe die Bude.
Nachdem ich lange Zeit beide Wechselricher unabhängig von einander Parallel betrieben habe ist mir der Gedanke gekommen doch mal Hand anzulegen um bei Bedarf eine Nulleinspeisung hinzubekommen.
Da der Symo mit 20kWh sich nicht mit nur einem MP2 5kWh an dessen ACout betreiben lässt, ginge eine Nulleinspeisung bei mir nur über Modbus/tcp und RS485. Das Venus OS nimmt vom EM24 die Leistungen der einzelnen Phasen, berechnet die Differenz zu NULL um gibt dem Symo per Modbus das Powersetting vor.
So weit so gut - Modbus können ja beide WR's und auch VenusOS.
Mir gelingt es per Python (und auch über das Venus OS auf dem Raspi) Leistungsdaten und Settings aus dem Symo aus zu lesen. Der Symo will aber zum Verrecken keine Settings annehmen! Egal was ich in das Power Setting Register scheibe - wenn ich es zu Überprüfung auslese steht da nach wie vor der ursprüngliche Wert.
Ich denke dass ich im Symo die Modbus-Priorität richtig gesetzt habe (Prio 1) und auch sonst scheint die Kommunikation zu funktionren. Möglicherweise schreibe ich auch auf den falschen Registern herum. Leider ist die Sunspec Registeraddressberechnung mit den Offsets nicht ganz trivial und Bitschubserei ist nicht meine Lieblingsspielwiese.
Und ja, ich kenne die "Operating Instruction Fronius Datamanager Modbus TCP & RTU"
Und jetzt die Fragen:
Reite ich da ein totes Pferd und es geht grundsätzlich nicht oder bin ich einfach nur zu blöde den Symo richtig zu konfiguriern?
Hat einer von euch schon mal solch eine Konfiguration ans laufen gebracht?
Gibt es (neben dem "Techniker" Password) ein weiteres geheimes Password das den Symo überredet Powersettings anzunehmen?
Und noch was: Ich habe den Effekt dass nach dem Update des VenusOS auf 3.55 der EM24 nicht mehr richtig ausgelesen wird. Ich bekomme nur noch die Summenwerte aber nicht die Einzwelwerte der Phasen angezeigt
Mittlerweile vermute ich dass "als das VenusOS schneller auf den EM24 einredet" als der es versteht. Ein speed test des RS485 sagt 19200 Baud, der EM24 kann max 9200 Baud.
Das VenusOS bietet über die Oberfläche keine Möglichkeit die Baudrate zu setzen.
Hat jemand von euch dafür einen Hack mit dem ich mir das gepoke an der config des RS485 sparen kann?
Totes Pferd. Du brauchst zwei Stromzähler. Einen am Multiplus, einen am Symo. Die AC Leitungen dann erst hinter den Zählern miteinander verbinden, so daß jedes System eigenständig regeln kann.
Das wäre eine Hardwärelösung die ich ich auch schon überlegt habe, ich mich aber frage warum das nicht einfacher über ein dynamische Power Setting per Modbus gehen soll.
Ich muss dem Symo ja immer noch mitteilen wieviel Leistung er (neben dem MPII) beitragen darf, dazu braucht es Modbus Settings.
Wahrscheinlich würde, wenn beide WR's unabhängig voneinander versuchen auf Null zu regeln, das ganze System in Regelschwingung geraten.
da ich mit meinem drei-phasigen Symo und einem MP5000 nicht die Victron-Standartlösung über AC_out gehen kann (1:1 Regel) hab ich mich mal in die Registerbeschreibung von Fronius vertieft.
Die Adressberechnung der Register ist nicht trivial da es ein und mehr-phasige Wechselrichter gibt die je nach Typ nochmal eigene Registeraufteilungen haben. Das ganze wird mit unterschiedlichen Off-Sets gelöst dass es für Klassen von WR-Typen es nur eine Tabelle gibt.
Dafür muss man je nach Typ mit unterschiedlichen Off-Sets herumrechnen. Dazu kommen noch Umrechungsfaktoren um die Registerinhalte als lesbaren Wert darstellen zu können.
Das war mir zu kompliziert so dass ich mir KI Hilfe geholt habe um die Registertabellen zu entschlüsseln und ein Python Script zusammen zu frickeln. Das ist dahingehend beschränkt dass es lediglich mit den Wechselrichten funktioniert die "Integer Inverter Model 101, 102 oder 103" sind. Zumindest schon mal alle SYMO's und auch noch ein paar andere.
Das Script liest die Registertabelle des "Integer Inverter Model 101, 102 oder 103" als csv Datei ein und berechnet die Adresse die über den Modbus übertragen werden muss um ein bestimmtes Register auszulesen oder zu beschreiben.
Nach dem laden des Registermodels wird die IP Adresse des WR abgefragt. Gelingt ein Kontakt zu dem WR kann man neben Register auslesen auch Register mit Werten beschreiben.
Antwortet der WR nicht geht nur die Suche in der Tabelle der gestalt dass man den namen oder die Beschreibung des gewünschten Parameter vorgibt und das Script mit der über off-set berechneten Register Addresse antwortet.
Steht eine Verbindung wird der Wert ausgelesen und gegebenenfalls, berichtigt mit dem _SF (Scale Factor) angezeigt.
Beispielsweise ergibt eine Suche nach dem "AC power value" die Antwort Register 40083 und da dieses Register einen _SF hat auch das Register in dem der _SF steht (40085). Der ausgelesene Wert des AC Power value wird mit dem _SF verrechnet und ausgegeben.
Da dieses Register read only ist lässt es sich nicht verändern.
Mein Liebling ist "WMax" - Setting for maximum power output. - Register 40152 und Register 40172 - Wmax_SF - wenn man sich den verbrauch aus dem Smart Meter holt und und mittels Venus OS das Register 40142 der WR richtig setzt kommt am Smart Meter Null raus.
Oder je nach dem wieviel man einspeisen will, kan man dann den WR steuern.
Das der Fronius so nebenbei mitliefert wird per Venus OS auch gleich noch mit verrechnet.
Wer also einen Symo hat und sich es zutraut den WR nicht zu bricken der kann mit dem Script schon so einiges anstellen Wer keine Anhnung hat lässt besser die Finger weg - mit Strom (und Feuer) kann man sich lebensgefährlich umbringen! Des is nix fer Aaafänger, rumwoschtele und Knebbsche drigge derffe nur die Experde !
Hier ist ein Auszug der Registertabelle als csv- datei, die gesamte Tabelle als Excel und das Python-Script (Fronius Register.txt umbenennen in Fronius Register.py) RegisterMapFroniusSymo_20-m-3_Typ_102.txt (26,1 KB)
Eigentlich kann Victron mit Fronius Nullseinspeisung „out of the box“. Das rumfummeln an den Modbusregistern ist da schon fertig drin, da muß man nichts mehr selber machen.
Dann erzähl doch mal wie das geht.
Bei 3xMP2 und einem Symo an ACout ist das einfach.
Wenn du mir sagtest wie das mit nur einem MP2 und einem Symo geht bist du mein Held!
Die Dokumentation ist da etwas unklar, aber nach allem, was man im Victron-Forum so liest, ist es egal, ob der Fronius an AC-in oder AC-out hängt, um vom GX-Device gesteuert zu werden.
Ja, an dem Punkt warning auch schon. Die Fronius Doku kenne ich.
Genau deswegen will ich erst mal das Register 'manuell' beschreiben. Wenn das funktioniert liegts nicht am Fronius und seinem Settings.
Dann kann's nur noch am VenusOS oder der Modbus- Kommunikation liegen.
Den symo über VenusOS abschalten geht, dynamisch steuern geht nicht.
Debugging des VenusOS ist Plan A, wenn nicht klappt kommt Plan B: eigenes Script.
Das neuste venusOS 3.55 hat eh Probleme da es auf dem Modbus mit 19200 Baud telefoniert und der EM24 nur 9600 Baud kann.
Erstaunlicher Weise bekommt Venus noch die Leistungssumme gemeldet, aber nicht die Ströme der einzelnen Phasen!?
Über das UI lässt sich nix dran ändern, also muss ich in der RS485 config rumfummeln.
Ich habe aber auch keinen Nerv mir jetzt einen neuen venusOS kenrnel zu kompilieren.
Ich werde bestenfalls in der RS485 ini 19200 auf 9600 zurück setzen. Mehr kann das nicht sein