NEWS
Modbus & Fronius GEN24
-
Lösung / Anleitung
Hier findet ihr die Modbus-Register für einen GEN24 mit Smartmeter am Übergabepunkt in Form einer TSV-Datei, die direkt im Modbus-Adapter von ioBroker importiert werden kann.
Mittlerweile (29. Okt. 2023) gibt es im photovoltaikforum einen zweiteiligen Beitrag über den GEN24 und seine Modbus-Register. Die mehrere hundert Register umfassende Modbus-Dokumentation von Fronius wird dort Bereich für Bereich besprochen und liefert auf diese Weise einen guten Überblick.
verwendete Dokumentationen von Fronius ..
Von den nachfolgend aufgeführten Dokumenten wurden zur Erstellung dieser Anleitung lediglich das zweite, vierte und sechste Dokument verwendet.
- Bedienungsanleitung Datamanager Modbus
- Bedienungsanleitung Modbus GEN24
- Smart Meter Register Map Float
- Smart Meter Register Map Int&SF
- Gen24 Primo/Symo Inverter Register Map Float storage
- Gen24 Primo/Symo Inverter Register Map Int&SF_storage
- Gen24 Primo/Symo Inverter Register Map Float
- Gen24 Primo/Symo Inverter Register Map Int&SF
Hier findet ihr meine hiermit erstellte TSV-Datei GEN24 Int&SK, die ihr direkt in den Modbus-Adapter importieren könnt.
Vorbereitung des Wechselrichters GEN24
- Der GEN24 soll im Modus TCP als Slave [1] auf dem Modbus arbeiten.
- Der hier eingestellte Port [2] muss im Modbus-Adapter des ioBroker übernommen werden.
- Die Zähleradresse (Smartmeter) muss als Slave-ID im Modbus-Adapter des ioBroker übernommen werden. Die Slave-ID des GEN24 ist fest auf 1 gesetzt und kann nicht geändert werden.
- Damit der GEN24 überhaupt über den Modbus erreichbar ist, muss die Option [5] aktiviert sein. Diese Einstellung ist übrigens auch erforderlich, will man den Fronius-Adapter des ioBroker verwenden.
- In [4] wählt man, welche Datenformate (SunSpec Model) der Modbus liefern soll. Es stehen float und Int&SF zur Verfügung. Leider sind auch bei Auswahl der ersten Option zuweilen (dynamische) Skalierungsfaktoren vorhanden, sodass die Wahl von Int&SF kein Nachteil ist. ACHTUNG! Die Skalierungsfaktoren sind dynamisch, können sich also bei einem Update ändern.
Installation/Konfiguration des Modbus-Adapters
- Nachdem man den Adapter installiert hat, öffnet man mit einem Klick auf den Schraubenschlüssel [1] die Ansicht mit den Konfigurationregistern Allgemein, diskrete Eingänge, diskrete Ausgänge, Eingangsregister, Holding-Register. Zunächst gilt es im Register Allgemein [2] die Verbindungsparameter zu konfigurieren.
- Da es hier um Modbus über Netzwerk/LAN geht, ist in [3] TCP auszuwählen.
- In [4] trägt man die (lokale) IP-Adresse des Wechselrichters ein.
- Der Port [5] muss derselbe sein, wie er in den Einstellungen des GEN24 konfiguriert wurde.
- Will man Smartmeter und den Wechselrichter zusammen mit diesem Adapter betreiben, muss die Option mehrere Geräte-IDs in [6] aktiviert werden. Ansonsten trägt man hier eine 1 für den Wechselrichter und die gewählte Einstellung aus Zähleradresse (siehe Konfiguration des Wechselrichters) für das Smartmeter ein. Ansonsten trägt man die gewünschte Slave-ID des Gerätes beim Editieren der Register in der zugehörigen Spalte ein.
- Da der GEN24 (siehe oben) als Slave am Modbus arbeitet, muss der Modbus-Adapter [7] als Master fungieren.
- Hier in [8] wird die Umrechnung der Registeradressen, die zum GEN24 gesandt werden, festgelegt. Man kann problemlos alle Option deaktiviert lassen. Aktiviert man die Option Aliases benutzen, so muss auch die nachfolgende Option aktiviert werden. Beides funktioniert. VORSICHT: Der Modbus-Adapter im ioBroker korrigiert die an den GEN24 gesandten Werte der Register; daher muss von der in der Fronius-Dokumentation angegebenen Registeradresse (siehe unten) stets 1 abgezogen werden.
Einrichten der Modbus-Register
Dieser Ausschnitt zeigt die Konfiguration eines Smartmeters, das über die Slave-ID = 200 referenziert wird. Die Datentypen gilt es korrekt zu identifizieren und im Modbus-Adapter geeignet einzutragen. Die Registerlänge wird automatisch berechnet, lediglich bei Strings ist sie gemäß den Vorgaben einzutragen. Skalierungsfaktoren werden als Exponenten zur Basis 10 angegeben. Hiermit ergibt sich der korrekte Wert eines Registers als Produkt aus dem Registerinhalt multipliziert mit der entsprechenden Potenz mit der Basis 10. Beispiel: Wert im Register = 23 V und Skalierungsfaktor sunssf=2, der richtige Wert ist also 23 x 10² V = 2300 V. Die sunssf Werte können auch negativ sein.Nach ausführlichen Tests glaube ich die Datentypen korrekt gewählt zu haben. Folgende Zuordnungen gelten für den Fronius und seine Komponenten ..
- uint16 ︎ Unsigned 16 bit (Big Endian)
- uint32 ︎ Unsigned 32 bit (Big Endian)
- string ︎ String (Zero-end)
- int16 ︎ Signed 16 bit (Big Endian)
- enum16 ︎ Unsigned 16 bit (Big Endian) [Bitte noch testen!]
- bitfield32 ︎ Unsigned 32 bit (Big Endian) [Bitte noch testen!]
- sunssf ︎ Signed 16 bit (Big Endian) Format für SunSpecScaleFactor : Entspricht dem Exponent zur Basis 10
- acc32 ︎ Unsigned 32 bit (Big Endian)
[zurück]
-
Version 2.0.0 des Fronius Adapters befindest sich nun im Test:
https://forum.iobroker.net/topic/65948/test-adapter-fronius-2-0-x -
Hallo @legro, dank zunächst einmal für die klasse Anleitung!
Da hier seit knapp 4 Wochen nun auch eine Symo Gen24 werkelt, komme ich aktuell bei meiner 'Fern-Steuer-Wunschliste' stark über die Grenzen des Fronius Adapters hinaus, sodass ich mir nun vorhin den Modbus Adapter installiert habe.Leider bekomme ich diesen aber nicht auf 'grün' und im Log steht folgendes:
modbus.0 2023-10-17 21:14:31.043 info Disconnected from slave 192.168.188.158 modbus.0 2023-10-17 21:14:30.991 warn Poll error count: 6 code: {"errorCode":130,"exceptionCode":4,"message":"SLAVE DEVICE FAILURE"} modbus.0 2023-10-17 21:14:29.938 warn Poll error count: 5 code: {"errorCode":130,"exceptionCode":4,"message":"SLAVE DEVICE FAILURE"} modbus.0 2023-10-17 21:14:28.884 warn Poll error count: 4 code: {"errorCode":130,"exceptionCode":4,"message":"SLAVE DEVICE FAILURE"} modbus.0 2023-10-17 21:14:27.830 warn Poll error count: 3 code: {"errorCode":130,"exceptionCode":4,"message":"SLAVE DEVICE FAILURE"} modbus.0 2023-10-17 21:14:26.777 warn Poll error count: 2 code: {"errorCode":130,"exceptionCode":4,"message":"SLAVE DEVICE FAILURE"} modbus.0 2023-10-17 21:14:25.724 warn Poll error count: 1 code: {"errorCode":130,"exceptionCode":4,"message":"SLAVE DEVICE FAILURE"} modbus.0 2023-10-17 21:14:25.713 info Connected to slave 192.168.188.158 modbus.0 2023-10-17 21:14:25.221 info starting. Version 5.0.11 in /opt/iobroker/node_modules/iobroker.modbus, node: v18.18.1, js-controller: 5.0.12
Ich habe entsprechend nun noch mit verschiedenen Einstellungen im Adapter herumprobiert, aber es bleibt beim:
Nun habe ich hier im Forum noch irgendwo gelesen, dass es evtl. an der SW Vers. des WR liegen könnte. Ist das evtl. das Problem?
Ich habe aktuell die 1.27.3-1 installiert.
In WEB-Oberfläche des WR wird mir aber auch noch die 1.25.2-1 zum Downgrade angeboten.
Leider ist mir nicht klar, ob ich mir mit einem Downgrade evtl. andere Probleme einfangeHast Du da evtl. einen Tipp für mich?
-
@pedder007 sagte in Modbus & Fronius GEN24:
Leider bekomme ich diesen aber nicht auf 'grün' und ..
Hast Du da evtl. einen Tipp für mich?Ich habe ebenfalls die neueste Software installiertund der Adapter funktioniert bei mir, daran mag‘s also wohl nicht liegen.
Schwierigkeiten hatte ich bei den Geräten-IDs bzw. Slave-IDs. Ich habe ein Fronius Smartmeter ID=200 und den GEN24 ID=1 in Betrieb.
Im GEN24 habe ich folgendes eingestellt ..
.., wobei du natürlich beachten musst, die korrekte Registerdefinitionen (float oder int) bereitzustellen.
Beim Erstellen der Register habe nach jedem hinzugefügte Registereintrag direkt geprüft, ob Adapter grün bleibt und Wert geliefert werden.
Bei mir funktioniert‘s damit.
Bei Bedarf kann ich dir den Export meiner Register zukommen lassen.
-
@legro danke für Deine Rückmeldung!
Ich bin jetzt nochmal alle Einstellungen im Symo und im Adapter durchgegangen und es sieht genauso aus wie in Deinen Screenshoots.Das Smartmeter habe ich auch, aber wo trage ich denn da evtl. die IDs nochmals extra ein, oder muss ich das nun direkt über die Registereinträge machen?
Die oben verlinkten Tabellen hatte ich mir angeschaut, aber da bekomme ich den Inhalt nicht auf den Aufbau der weiteren Reiter im Adapter gemappt.Bzgl. des Export, dass wäre natürlich super, wenn Du mir den zur Verfügung stellen würdest!
Ich bin da aktuell auf der Suche nach einer Möglichkeit dem Symo zu sagen, wann er den Akku mit wieviel Leistung laden darf.
Die Logik dazu kommt aus Werten des Fronius Adapters und anderen Parametern aus meinem ioBroker.Edit: Jetzt habe ich oben doch noch den Screenshoot vom 'Holding Register' entdeckt (sorry war blind). Damit versuche ich es dann morgen nochmal. Muss in die anderen Register auch etwas hinein?
Edit-Edit :), ich konnte es nicht lassen und habe zumindest einmal noch schnell eine Zeile eingetragen und der Adapter ist grün
-
Hier kannst du die TSW-Datei dir herunterladen. Sie verwendet Int&SF als Datenstruktur.
Wenn du dich ggf. für unsere Visualisierungen interessierst, findest du hier den Einstieg in die Dokumentationen. Im Punkt [10] ist unsere (noch auf dem alten Fronius-Adapter basierende) Visualisierung unserer PV-Anlage zu finden.
-
@legro vielen Dank, das File werde ich in den nächsten Tagen direkt testen!
Die Doku über Deine Visualisierung ist auch klasse. Ich schraube da bei mir mittlerweile auch schon gut 3 Jahre dran herum, aber Anregungen sind immer gut
Bei mir sieht’s bzgl. Hzg. und Energieversorgung aktuell so aus:
…plus ein paar Diagramme, die das Ganze dann auch längerfristig auswertbar machen. -
@pedder007 sagte in Modbus & Fronius GEN24:
.. Ich schraube da bei mir mittlerweile auch schon gut 3 Jahre dran herum, ..
Zum Ergebnis kann man dich nur beglückwünschen.
Bei dir ist offenbar alles umgekehrt verlaufen: Erst die Wärmepumpe, dann die PV. Letztes Jahre habe ich mich monatelang mit PV-Modulen, Wechselrichtern, Smartmetern, .. herumgeschlagen. Dank der hervorragenden und vor allem frei zugänglichen Webinaren von Fronius konnte ich nicht nur Fehlentscheidungen vermeiden, sondern selbst die Anlage planen und größtenteils auch aufbauen. Anfang März waren die Arbeiten endlich abgeschlossen und die Anlage konnte vollständig in Betrieb gehen.
Aber da kam unverhofft das nächste Abenteuer auf mich zu. Die BAFA hatte uns eine Förderung von 35% für unseren Heizungsumbau genehmigt. So erfreulich dies war, so traf dies mich völlig unvorbereitet. Mir fehlten jegliche vergleichbare Kenntnisse, wie ich sie zum Aufbau unserer PV mir angeeignet hatte.
Mehr aus Verzweiflung denn aus Einsicht entschieden wir uns für Viessmann, da wir eine erst acht Jahre alte (sehr gute!) Vitodens (Gastherme) besaßen und diese mit der neuen Wärmepumpe koppeln wollten. Wer weiß schon, ob wir bloß mit einer Wärmepumpe ausgestattet unser über 30 Jahres altes Haus bei deftigen Minusgraden warm bekommen.
Zum Glück zogen sich Planung und Einbau über Monate, sodass ich Zeit hatte, mich in die Thematik einzuarbeiten. Im letzten Moment konnten wir eine riesige Fehlentscheidung korrigieren: Statt dem (in)kompetenten Rat der „Fachleuten“ zu folgen, die Warmwasseraufbereitung mittels Vitotrans (Durchlauferhitzer) umzusetzen, entschieden wir uns, einen zusätzlichen Warmwasserspeicher (300L) einzubauen. Der Heizwasserpuffer- und Warmwasserspeicher werden getrennt über ein Dreiwegeventil aufgewärmt. Statt den Pufferspeicher (400L) beständig auf Temperaturen über 50°C zu halten, genügen bei uns dank Fußbodenheizung 26 - 35°C.
Die über 200 Jahre alten Erkenntnisse von Nicolas Léonard Sardi Carnot helfen uns nun jede Menge Energie zu sparen. Statt beständig COP ≈ 3 bis 4 (50°C) erzielen wir COP ≈ 6 bis 7 beim reinen Heizen. Diese Werte erzielten wir in den letzten Tage bei Außentemperatur zwischen 12°C bis 14°; mal sehen, wie‘s weitergeht, wenn‘s mal richtig kalt wird.
Bevor alles bloß noch off topic wird, sollten wir lieber in einen anderen Thread wechseln, in dem ich (noch recht verzweifelt) nach Unterstützung suche.
Weil ich nur noch in Sachen Wärmepumpe unterwegs war, habe ich außer der Einbindung des GEN24 mittels Modbus noch nichts damit umgesetzt. Es würde mich sehr freuen, könnten wir uns hier darüber austauschen.
-
@legro Hi nochmal, ist ok gerne, ich klinke mich dann dort mit ein
Wobei ich die Bosch Therme via BBQ Kees und EMS-ESP Adapter angebunden habe, aber am Ende ist ja ein Datenpunkt (fast) wie der andere, egal wo er nun gerade herkommtPS.
Wir hatten bei der Heizung (Ende 21'/Anfg 22') auch ein Angebot mit Viessmann-Technik dabei. Leider ist der Viessmann Mensch quasi überhaupt nicht auf meine Rückfragen eingegangen, weshalb er ziemlich schnell disqualifiziert war.
Die anderen beiden (Bosch und Vaillant) lagen Kopf an Kopf, wobei ich dann, dem Wirkungsgrad der Maschine und dem vermeintlich fortschrittlichen SmartHome Ansatz von Bosch, gefolgt bin. Bzgl. Ersterem liefert die Maschine auch wie angepriesen, bzgl. Letzterem war das aber der totale Reinfall, da Bosch das alles (und das auch noch schlecht integriert) nur in seinem eigenen closed Shop machen möchte - sprich Zwangsmarkenbindung durch fehlende APIs :-(, .. deshalb nun auch der Umweg über den BBQ Kees/EMS Bus, der ja eigentlich nur für die Wartungstechniker ist. Das Bosch Forum ist voll von entsprechenden KommentarenBei der PV (gerade erst 30.09.) in Betrieb gegangen, hatte ich auch ein Angebot mit Viessmann-Technik (anderer Anbieter), der hat mir dann aber auch nur das auf meine Fragen geantwortet, was ER hören wollte. Z.B. was der Sinn (in unseren Breitgraden und einer Geothermie-Heizung) von einem über 12kWh Akku sein soll, blieb offen?!?!? - von E-Auto war halt meinerseits da auch noch keine Rede. Ich weiß nicht was Viessmann da treibt, aber Deine Erfahrungen hören sich ja auch wenig positiv an.
Entsprechend ist's dann das Angebot aus Fronius, BYD (7,7kWh) und JinKO Tiger Panels von einem Jungunternehmer geworden, was im übrigen, bei gleicher Leistung, auch locker 1/3 weniger gekostet hat und ich den Akku sogar selber beistellen durfte (zu dem Zeitpunkt supergünstige Quelle in Arnheim (Niederlande), selber abgeholt).
Mehr, und auch positiver , dann im anderen Fred ;-), ... bis die Tage ...
-
@legro ich konnte mithilfe deiner Anleitung den Adapter erfolgreich konfigurieren.
Ich habe einen Wert den ich gerne Steuern würde, finde den Wert aber nicht.
Im Fronus UI ist es das "Minimale Ladelimit".
Hast du irgendeine Idee wo der Wert zu finden sein könnte?
Danke
- zloe
-
@legro ich hab's mittlerweile herausgefunden, ... das Minimale Ladelimt im UI sehe ich nicht in den modbus Werten, sondern nur den .holdingRegisters.1.40350_MinRsvPct, und der gilt gleichzeitig zu dem im UI eingestellten Wert. Der restriktivere wird herangezogen.
Für meinen Use Case muss ich nur im UI einen weniger restriktiven Wert konfigurieren, damit kann ich über modbus den Wert steuern.- zloe
-
@zloe sagte in Modbus & Fronius GEN24:
@legro ich hab's mittlerweile herausgefunden, ...
Schön, dass es funktioniert.
Ich habe zwar alles rund um Modbus bei unserem GEN24 eingerichtet, seither jedoch nicht mehr weiter daran gearbeitet. Da wir völlig unerwartet eine Förderzusage von 35% für den Umbau unserer Heizung mit einer Viessmann Wärmepumpe erhielten, stolperte ich nahezu blind in das nächste Abenteuer. Verzweifelt versuche ich hier nach einer Lösung, unsere Viessmann Wärmpepumpe mittels eines WAGO-Moduls über Modbus zu steuern.
War ich in Sachen PV durch monatelanges Einarbeiten in diese Thematik bestens vorbereitet, so musste ich mich bei der Planung unsere Wärmepumpe auf sog. „Fachleute“ verlassen. Sozusagen in letzter Minute konnte ich eine riesige Fehlentscheidung abwenden. Statt mittels Vitotrans - eine Art Durchlauferhitzer, der aus dem Heizwasserpufferspeicher gespeist wird - die Warmwasseraufbereitung zu gestalten, ließ ich einen Warmwasserspeicher installieren, der separat über ein Dreiwegeventil von der Wärmepumpe geladen wird.
Unglaublich aber wahr ..
Hätten wir die Lösung der „Fachleute“ akzeptiert, hätte der Heizwasserpuffer beständig auf über 50°C gehalten werden müssen, nun müssen wir ihn bloß auf ca. 32°C (Fußbodenheizung) halten. Die Resultate bei den derzeit herrschenden Außentemperaturen um die 8°C bis 14°C ..
Warmwasser 48°C -> COP ≈ 3 - 4
Heizwasser 32°C -> COP ≈ 5 - 7Die 200 Jahre alten Erkenntnisse von Carnot machen es möglich.
In Sachen Modbussteuerung bei Fronius darf ich hoffentlich bei dir Rat suchen.
-
Danke euch, ich habe es jetzt auch hinbekommen, meine Fronius-Komponenten auszulesen.
Klappt auc hsoweit, bis auf den einen Wert, den ich hauptsächlich verwenden will.
Es geht darum, dass ich das Entladen des Akkus temporär deaktivieren will, wenn das E-Auto lädt.Das sollte laut Doku mit dem Wert 40348_StorCtl_Mod funktionieren. Laut Excel-Tabelle ist das ein Bitfield mit der Beschreibung:
bit 0: CHARGE
bit 1: DiSCHARGEIn der Definition der Register ist es ein "Unsigned 32 bit (Big Endian)", es wird mir aber als Zahl angezeigt, die sich
- ständig ändert und
- dabei immer erhöht...
Was müsste ich ändern oder kann ich den Akku mit einem anderen Wert steuern?
Danke! -
@bender275 und @legro
ich bin nun heute Abend endlich auch einmal zum testen gekommen.
Soweit läuft der Adapter mit Deiner @legro TSV Datei. Danke dafür nochmal, dass hat echt Arbeit erspart.
Ich habe die für mich etwas 'erleichtert' und mich dann mal um meinen Wunsch gekümmert, mein Batterie-Discharging fern zu steuern.Wenn ich die ganzen IDs richtig interpretiere, dann brauche ich dafür:
40345_WChaMax als max. Referenzwert für maximale Batterie Ein- und Ausgangslstg.
40355_OutWRte als Begrenzungswert für die max. Entladelstg. (%-Wert mit Bezug auf 40345)
und ggf.
40356_InWRte als Begrenzungswert für die max. Ladelstg. (%-Wert mit Bezug auf 40345)Die Beiden letzten sind lt. Fronius Tabelle auch Read/Write, wobei ich dazu dann im Holding Register noch jeweils den Haken bei 'WP' gesetzt habe.
Leider kann ich in die Datenpunkte aber eintragen was ich will, habe bei 40355 auch negative Werte getestet, der Entladestrom, als auch der Ladestrom, zeigen sich aber völlig unbeeindruckt.Seid ihr da evtl. schlauer? - oder habe ich was nicht verstanden?
-
@pedder007 Ja, dank der TSV Datei habe ich alle Werte zur Verfügung. Wenn ich die aber alle Abfrage, geht mein Rasi fast in die Knie...
Ich habe meine Inspiration aus folgendem Video:
YouTubeFür andere Ideen bin ich auch dankbar, hauptsache es funktioniert.
-
@pedder007 sagte in Modbus & Fronius GEN24:
Seid ihr da evtl. schlauer? - oder habe ich was nicht verstanden?
Kennst du diesen Hinweis?
-
@legro ja hatte ich gerade eben und auch bereits geantwortet.
Danke Dir -
@bender275 ja das ist heftig für den Raspi, das hatte ich auch festgestellt und deshalb sogar erst noch meine Migration des Masters in eine Proxmox Umgebung auf einen Mini PC voran getrieben.
Ich hatte da vorher schon gute Erfahrungen bei Motioneye mit gemacht , ist dann doch etwas anderes …Bzgl der Datenpunkte, da habe ich bei mir auch schon gut ausgedünnt, da ich auch tatsächlich bei Weitem nicht alle brauche.
Das Video schaue ich mir bei Gelegenheit aber trotzdem noch an, danke
-
Puh, ich bekomme es einfach nicht hin.
Letzten Endes geht es nur um diese drei Werte, die ich schreiben will:
Abrufen klappt auch:
Wenn ich aber beim ersten eine 1 setzen will, kommt im Log:
error Cannot write multiple registers [40348]: {"errorCode":144,"exceptionCode":3,"message":"ILLEGAL DATA VALUE"}
Ich habe dann in der Adapter-Konfig auf Single Value umgestellt:
Leider weiter ohne Erfolg, neuer Fehler:
modbus.0 2024-01-12 13:50:05.497 error Cannot write single register [40348]: {"errorCode":134,"exceptionCode":3,"message":"ILLEGAL DATA VALUE"} modbus.0 2024-01-12 13:50:05.489 warn Trying to write multiple register at once, but option doNotUseWriteMultipleRegisters is enabled! Only first 16 bits are written
Was fehlt da noch?
Bei den anderen beiden Werten funktioniert es... -
@legro @Pedder007
Könntet ihr bitte eure Definition vom StorCtlMod oder gar allen (drei) Werten posten?