FHEM Forum

FHEM - Energiemanagement und Energieerzeugung => Solaranlagen => Thema gestartet von: sky64 am 17 Januar 2021, 18:52:26

Titel: Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: sky64 am 17 Januar 2021, 18:52:26
Hallo

Da in der Firmware des Gen24 fehlt die in der Doku vorhandene Speichersteuerung leider noch.
In der Vorgängerversion konnte man zwar die (versteckte) Webseite noch aufrufen, war aber ohne Funktion.
Deshalb habe ich heute mal mit dem Modbus die Register für die Speichersteuerung gesucht.
Und siehe da es funktioniert :)
Sicher kann das der eine oder andere gebrauchen.


   obj-h40109-format %.2f
   obj-h40109-len 2
   obj-h40109-reading Temperatur
   obj-h40109-unpack f>
   obj-h40358-reading StorCtl_Mod
   obj-h40358-set 1
   obj-h40360-expr $val/100
   obj-h40360-format %.2f %
   obj-h40360-reading BYD_min_Reserve
   obj-h40360-set 1
   obj-h40360-setexpr $val * 100
   obj-h40361-expr $val/100
   obj-h40361-format %.2f %
   obj-h40361-reading BYD_SoC
   obj-h40365-expr $val/100
   obj-h40365-format %.2f %
   obj-h40365-reading BYD_max_discharge
   obj-h40365-set 1
   obj-h40365-setexpr $val * 100
   obj-h40366-expr $val/100
   obj-h40366-format %.2f %
   obj-h40366-reading BYD_max_charge
   obj-h40366-set 1
   obj-h40366-setexpr $val * 100


Der Wert "StorCtl_Mod" sind eigentlich 2 Bit-Werte, Bit0 und Bit 1 für die Freigabe der Lade- bzw. Entladesteuerung.
Das war bei mir 0. Bit0 und Bit1 zusammen sind dann eben dezimal 3 und muss einmalig gesetzt werden.
Die Werte für die Lade-/Entladebegrenzung sind %-Werte der Speicherkapazität, zumindest bei mir mit 5,2Kwh (2 Module BYD HVS)
Das heißt bei mir sind 20% 1040W.
Es gibt zwar Register für die Watt-Zahl, aber das sind nur Read-Register.
Es gibt noch Readregister für den 100%-Wert. Wenn man es universell machen möchte und konkrete Wattzahlen lesen bzw. setzen möchten muss man das entsprechend umrechnen.
Es kann sein, das es bei größeren Batterien anderen Grenzwerte gibt.
Bei Fronius gibt es im Downloadbereich ein Zip mit enthaltenen Excel-Listen für alle verfügbaren Modbus-Register.
(Gen24_Primo_Symo_Inverter_Register_Map_Float_storage.xls)

Als nächstes steht dann die Einbindung der Sonnen-Prognose an.

Gruß Ron
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: ch.eick am 17 Januar 2021, 19:21:20
Zitat von: sky64 am 17 Januar 2021, 18:52:26
Als nächstes steht dann die Einbindung der Sonnen-Prognose an.

Hallo Ron,
Wetter- / Leistungs-Prognose (https://wiki.fhem.de/wiki/Kostal_Plenticore_10_Plus#Wetter-.2FLeistungs-Prognose)
Das läuft bei uns bereits seit 1 Jahr ziemlich gut :-) und ist unabhängig vom Wechselrichter verwendbar.
Gruß
   Christian
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: sky64 am 17 Januar 2021, 19:40:06
Ja, Danke. Das ist sehr umfangreich.
Ich habe das schon mal versucht zu lesen, aber viele Sachen habe ich noch nicht verstanden.
Ich weiß das ich als nächstes mit DBlog anfangen muss.
Ohne zumindest etwas Verständnis was und wie das funktioniert geht es nicht wenn ich es für mich anpassen will.

Gruß Ron
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: ch.eick am 18 Januar 2021, 08:39:12
Zitat von: sky64 am 17 Januar 2021, 19:40:06
Ich habe das schon mal versucht zu lesen, aber viele Sachen habe ich noch nicht verstanden.
Ich weiß das ich als nächstes mit DBlog anfangen muss.
Ohne zumindest etwas Verständnis was und wie das funktioniert geht es nicht wenn ich es für mich anpassen will.
Ich habe die Leistungsprognose für Dich mal in einen anderen Thread ausgelagert.
Leistungsprognose für Wechselrichter (https://forum.fhem.de/index.php/topic,117864.0.html)

VG
  Christian
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: yoda_gh am 17 Mai 2021, 21:35:26
Hallo sky64

Zitat von: sky64 am 17 Januar 2021, 18:52:26
Deshalb habe ich heute mal mit dem Modbus die Register für die Speichersteuerung gesucht.
Und siehe da es funktioniert :)
Sicher kann das der eine oder andere gebrauchen.

[...]

Super, vielen Dank!! Das hilft mir sehr und erspart mir sicher die ein oder andere Stunde ausprobieren und graue Haare. :)

Aber.. bisher tut sich gar nix.

Ich habe das Device angelegt, erstmal nur mit den "obj-h40109-*"-Attributen, aber FHEM legt leider kein REading an. Kannst Du bitte mal das Define für's Device auch posten - oder idealerweise die ganze "Raw definition" von der Device-Seite? Bin mir bezüglich der anderen Settings noch nicht ganz sicher.

Einen Screenshot der Einstellungen im WR habe ich angehängt, hoffe das passt? Sicherheitshalber habe ich erstmal nur lesenden Zugriff aktiviert.

Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: sky64 am 17 Mai 2021, 22:08:46
Hallo

.. also "..Steuerung über Modbus" muss du schon einschalten  ;)
Rest folgt morgen ..
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: yoda_gh am 18 Mai 2021, 06:27:34
Zitat von: sky64 am 17 Mai 2021, 22:08:46
.. also "..Steuerung über Modbus" muss du schon einschalten  ;)
Rest folgt morgen ..

Nein, es geht auch ohne, solange man nur Werte lesen möchte. Was mir noch gefehlt hat, war ein "obj-h40109-poll 1", sonst wird das Reading nur auf expliziten Trigger aktualisiert.

Hier mal meine aktuell funktionierende Definition:


define gen24 ModbusAttr 1 180 192.168.0.123:502 TCP
attr gen24 obj-h40109-format %.2f
attr gen24 obj-h40109-len 2
attr gen24 obj-h40109-poll 1
attr gen24 obj-h40109-reading CabinetTemperature
attr gen24 obj-h40109-unpack f>
attr gen24 room Solar


Vielleicht magst Du das noch in Deinen initialen Post aufnehmen?

Vermutlich will man noch eigene Typen definieren oder Defaults setzen, damit man nicht "-format", "-len", "-poll" etc. bei jedem einzelnen Register spezifizieren muss, das schaue ich mir nochmal an, wenn ich mehrere Register am Laufen habe. :)
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: yoda_gh am 18 Mai 2021, 20:18:09
Update 2022-04-22: Batterie und Schreibzugriff ergänzt

Hier mal meine komplette Definition für das Lesen und Schreiben von Werten (nur die aus meiner Sicht interessanten), für einen Gen24 mit Batterie:


define gen24 ModbusAttr 1 120 192.168.0.123:502 TCP
attr gen24 dev-h-combine 125
attr gen24 dev-h-defFormat %.1f
attr gen24 dev-h-defLen 2
attr gen24 dev-h-defPoll 1
attr gen24 dev-h-defUnpack f>
attr gen24 event-min-interval ACActEnergy:7200,ACPower:7200,Battery.*:7200
attr gen24 event-on-change-reading .*Energy:0.1,ACPower:1,DCPowerMPPT.*:1,status,Battery.*harge.*:1,BatteryState
attr gen24 obj-h40073-reading ACCurrentPhaseA
attr gen24 obj-h40075-reading ACCurrentPhaseB
attr gen24 obj-h40077-reading ACCurrentPhaseC
attr gen24 obj-h40085-reading ACVoltagePhaseA
attr gen24 obj-h40087-reading ACVoltagePhaseB
attr gen24 obj-h40089-reading ACVoltagePhaseC
attr gen24 obj-h40091-format %.0f
attr gen24 obj-h40091-reading ACPower
attr gen24 obj-h40093-reading ACFrequency
attr gen24 obj-h40109-reading CabinetTemperature
attr gen24 obj-h40117-format %s
attr gen24 obj-h40117-len 1
attr gen24 obj-h40117-map 1:off,2:sleeping,3:starting,4:active,5:throttled,6:shutdown,7:fault,8:standby
attr gen24 obj-h40117-reading status
attr gen24 obj-h40117-unpack n
attr gen24 obj-h40196-expr $val / 1000
attr gen24 obj-h40196-format %.2f
attr gen24 obj-h40196-len 4
attr gen24 obj-h40196-reading ACActEnergy
attr gen24 obj-h40196-unpack Q>
attr gen24 obj-h40267-format %d
attr gen24 obj-h40267-group 1-1
attr gen24 obj-h40267-len 1
attr gen24 obj-h40267-reading DCPowerScale
attr gen24 obj-h40267-unpack s>
attr gen24 obj-h40284-expr $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
attr gen24 obj-h40284-group 1-2
attr gen24 obj-h40284-len 1
attr gen24 obj-h40284-reading DCPowerMPPT1
attr gen24 obj-h40284-unpack n
attr gen24 obj-h40304-expr $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
attr gen24 obj-h40304-group 1-3
attr gen24 obj-h40304-len 1
attr gen24 obj-h40304-reading DCPowerMPPT2
attr gen24 obj-h40304-unpack n
attr gen24 obj-h40324-expr $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
attr gen24 obj-h40324-group 1-4
attr gen24 obj-h40324-len 1
attr gen24 obj-h40324-reading BatteryChargeWatt
attr gen24 obj-h40324-unpack n
attr gen24 obj-h40344-expr $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
attr gen24 obj-h40344-group 1-5
attr gen24 obj-h40344-len 1
attr gen24 obj-h40344-reading BatteryDischargeWatt
attr gen24 obj-h40344-unpack n
attr gen24 obj-h40355-len 1
attr gen24 obj-h40355-reading BatConfigMaxReferenceWatt
attr gen24 obj-h40355-unpack n
attr gen24 obj-h40358-format %s
attr gen24 obj-h40358-len 1
attr gen24 obj-h40358-map 0:none,1:chargeMax,2:dischrMax,3:bothMax
attr gen24 obj-h40358-reading BatConfigMaxEnabled
attr gen24 obj-h40358-set 1
attr gen24 obj-h40358-unpack n
attr gen24 obj-h40360-expr $val / 100
attr gen24 obj-h40360-len 1
attr gen24 obj-h40360-reading BatConfigReserve
attr gen24 obj-h40360-unpack n
attr gen24 obj-h40361-expr $val / 100
attr gen24 obj-h40361-len 1
attr gen24 obj-h40361-reading BatteryChargePercent
attr gen24 obj-h40361-unpack n
attr gen24 obj-h40364-format %s
attr gen24 obj-h40364-len 1
attr gen24 obj-h40364-map 1:off,2:empty,3:discharging,4:charging,5:full,6:holding,7:testing
attr gen24 obj-h40364-reading BatteryState
attr gen24 obj-h40364-unpack n
attr gen24 obj-h40365-expr $val / 10000 * ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40365-len 1
attr gen24 obj-h40365-max ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40365-min -ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40365-reading BatConfigMaxDischargeWatt
attr gen24 obj-h40365-set 1
attr gen24 obj-h40365-setexpr $val / ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1) * 10000
attr gen24 obj-h40365-unpack s>
attr gen24 obj-h40366-expr $val / 10000 * ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40366-len 1
attr gen24 obj-h40366-max ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40366-min -ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40366-reading BatConfigMaxChargeWatt
attr gen24 obj-h40366-set 1
attr gen24 obj-h40366-setexpr $val / ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1) * 10000
attr gen24 obj-h40366-unpack s>
attr gen24 stateFormat status BatteryState ACPower W
attr gen24 userReadings PVConsumedEnergy { ReadingsVal($name,"ACActEnergy",0) - ReadingsVal("gen24_meter","EnergyExported",0) }


Die Register habe ich dem Dokument "Fronius GEN24 Modbus TCP & RTU" (z.Zt. https://www.fronius.com/~/downloads/Solar%20Energy/Operating%20Instructions/42%2C0410%2C2649.pdf) und vor allem den Tabellen in "gen24-modbus-api-external-docs.zip" (z.Zt. http://www.fronius.com/QR-link/0024) entnommen, wo es noch deutlich mehr Werte zum Abruf gibt...

Die event-*-Settings sind natürlich Geschmackssache - zur Reduzierung der Datenlast logge ich letztlich das hier mit (Regexp-Part vom FileLog-Device):


gen24:AC.*:.*|gen24:DCPowerMPPT.*:.*|gen24:Battery.*:.*|gen24:PVConsumedEnergy:.*|gen24:status:.*

Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: sky64 am 19 Mai 2021, 09:41:42
Sorry, ein Tag zu spät.
hier mein Device zur Steuerung der Batterie am Fronius Gen24.
Alle anderen Werte lese ich z.Z. über die API aus.
Ich bin noch unschlüssig welcher Weg der bessere zur Abfrage ist. Zum Steuern geht nur Modbus, zum Auslesen ist die API einfacher, da sich das Device praktisch selbst konfiguriert.

list Modbus_Fronius
Internals:
   DEF        1 30 192.168.xxx.xxx:502 TCP
   DeviceName 192.168.xxx.xxx:502
   EXPECT     idle
   FD         11
   FUUID      5ff5cafd-f33f-5588-ce21-672f940aabac9443
   IODev      Modbus_Fronius
   Interval   30
   LASTOPEN   1621173510.31268
   MODBUSID   1
   MODE       master
   MODULEVERSION Modbus 4.3.11 - 2.1.2021
   NAME       Modbus_Fronius
   NOTIFYDEV  global
   NR         336
   NTFY_ORDER 50-Modbus_Fronius
   PARTIAL   
   PROTOCOL   TCP
   STATE      SOC:40.10 | Reserve:15.00<br>
Begrenzung Entl.:100.00 | Lad.:20.00<br>
Temp: 52.93 °C
   TCPConn    1
   TYPE       ModbusAttr
   devioLoglevel 3
   nextOpenDelay 60
   QUEUE:
   READ:
     BUFFER     
   READINGS:
     2021-05-19 09:22:05   BYD_SoC         40.10
     2021-05-19 09:22:05   BYD_max_charge  20.00
     2021-05-19 09:22:05   BYD_max_discharge 100.00
     2021-05-19 09:22:05   BYD_min_Reserve 15.00
     2021-05-19 09:22:05   Hersteller      Fronius
     2021-05-19 09:22:05   StorCtl_Mod     3
     2021-05-19 09:22:05   Temperatur      52.93
     2021-05-16 15:58:30   state           opened
   REMEMBER:
     lid        1
     lname      Modbus_Fronius
     lrecv      1621408925.98864
     lsend      1621408925.98602
   defptr:
     Modbus_Fronius 1
   gotReadings:
     BYD_max_charge 20.00
Attributes:
   DbLogExclude .*
   obj-h40004-len 8
   obj-h40004-poll 900
   obj-h40004-reading Hersteller
   obj-h40004-unpack A*
   obj-h40109-format %.2f
   obj-h40109-len 2
   obj-h40109-poll 300
   obj-h40109-reading Temperatur
   obj-h40109-unpack f>
   obj-h40358-poll 60
   obj-h40358-reading StorCtl_Mod
   obj-h40358-set 1
   obj-h40360-expr $val/100
   obj-h40360-format %.2f
   obj-h40360-poll 60
   obj-h40360-reading BYD_min_Reserve
   obj-h40360-set 1
   obj-h40360-setexpr $val * 100
   obj-h40361-expr $val/100
   obj-h40361-format %.2f
   obj-h40361-poll 60
   obj-h40361-reading BYD_SoC
   obj-h40365-expr $val/100
   obj-h40365-format %.2f
   obj-h40365-poll 60
   obj-h40365-reading BYD_max_discharge
   obj-h40365-set 1
   obj-h40365-setexpr $val * 100
   obj-h40366-expr $val/100
   obj-h40366-format %.2f
   obj-h40366-poll 60
   obj-h40366-reading BYD_max_charge
   obj-h40366-set 1
   obj-h40366-setexpr $val * 100
   room       PV-Anlage,Verbrauch
   stateFormat SOC:BYD_SoC | Reserve:BYD_min_Reserve<br>
Begrenzung Entl.:BYD_max_discharge | Lad.:BYD_max_charge<br>
Temp: Temperatur °C
   verbose    1


Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: yoda_gh am 24 Mai 2021, 07:18:09
Inzwischen lese ich auch das Smart Meter TS65-A3 am Einspeisepunkt über Modbus, indirekt über TCP über den Gen24. Leider funktionieren die Summenzähler pro Phase nicht, da bekomme ich immer nur undefinierte Werte zurück, sonst aber alle Details, die man so möchte:


define gen24_meter ModbusAttr 200 120 192.168.0.123:502 TCP
attr gen24_meter dev-h-combine 125
attr gen24_meter dev-h-defFormat %.1f
attr gen24_meter dev-h-defLen 2
attr gen24_meter dev-h-defPoll 1
attr gen24_meter dev-h-defUnpack f>
attr gen24_meter event-min-interval Power[ABC].*:7200,Energy.*:7200
attr gen24_meter event-on-change-reading Power[ABC].*:1,Energy.*:0.1
attr gen24_meter obj-h40081-reading VoltageA
attr gen24_meter obj-h40083-reading VoltageB
attr gen24_meter obj-h40085-reading VoltageC
attr gen24_meter obj-h40095-reading Frequency
attr gen24_meter obj-h40097-reading Power
attr gen24_meter obj-h40099-reading PowerA
attr gen24_meter obj-h40101-reading PowerB
attr gen24_meter obj-h40103-reading PowerC
attr gen24_meter obj-h40123-reading PfA
attr gen24_meter obj-h40125-reading PfB
attr gen24_meter obj-h40127-reading PfC
attr gen24_meter obj-h40129-expr $val / 1000
attr gen24_meter obj-h40129-reading EnergyExported
attr gen24_meter obj-h40137-expr $val / 1000
attr gen24_meter obj-h40137-reading EnergyImported
attr gen24_meter room Zähler
attr gen24_meter stateFormat PA: PowerA PB: PowerB PC: PowerC
attr gen24_meter userReadings PowerA_oPV {\
  ReadingsVal($name,"PowerA",0) + ReadingsVal("gen24","ACPower",0)/3 },\
PowerB_oPV {\
  ReadingsVal($name,"PowerB",0) + ReadingsVal("gen24","ACPower",0)/3 },\
PowerC_oPV {\
  ReadingsVal($name,"PowerC",0) + ReadingsVal("gen24","ACPower",0)/3 }


Damit die userReadings besser funktionieren, nutze ich zusätzlich ein at-Device, dass möglichst zeitgleich das Lesen der Werte von "gen24_meter" und "gen24" (Definition siehe oben) anstößt:


defmod atMeterRead at +*00:02:00 set gen24 reread ;; sleep 5;; set gen24_meter reread


Wenn man das Lesen mit dem at-Device anstößt, ist das Lese-Intervall in den ModbusAttr-Definitionen jeweils auf 0 zu setzen (also die 120 im define für gen24 und gen24_meter jeweils durch eine 0 ersetzen),
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: sn0000py am 09 Januar 2022, 16:50:30
Eine Frage funktioniert bei euch das noch?

Habe gerade den Modbus Atrr neu angelegt - ich möchte eben den -BYD Speicher steuern damit.

BYD_max_discharge
0.00 %
2022-01-09 16:44:54
BYD_min_Reserve
0.00 %
2022-01-09 16:45:04


und wenn ich den BYD_min_Reserve setze dann ändert isch nichts, auch wenn ich ein reread mache ändert sich an den readings nichts.

Ich möchte eben gerne zeitgesteuert und / oder prognose gesteuert den PV Speicher mal mehr mal weniger voll lassen über nacht.
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: sky64 am 09 Januar 2022, 17:05:03
Bei mir funktioniert es nach wie vor, aktuelle Gen24-Firmware.
Einstellungen wie oben.

Hat es bei dir schon funktioniert?
Wenn nicht, ist im WR Steuerung per Modbus freigegeben?
StorCtl_Mod auf 3?

Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: sn0000py am 09 Januar 2022, 17:20:54
ah okay, jetztt gehts
ich hatte noch diese attr drinnen
attr gen24 dev-h-combine 125
attr gen24 dev-h-defFormat %.1f
attr gen24 dev-h-defLen 2
attr gen24 dev-h-defPoll 1
attr gen24 dev-h-defUnpack f>

die gelöscht und nun funkt es mal
danke
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: sn0000py am 09 Januar 2022, 19:26:01
Eine Frage noch, gibt es eigentlich auch den Wert mit dem definiert wird mit wieviel Watt der Speicher aus demm Netz gealden wird?

Im Moment wird ja mit 500 Watt aus dem Netz geladen (von der PV mit nicht ganz 6kW) würde gerne einstellen das auch aus den Netz mit 6kW geladen werden kann (in der Nacht zB)
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: sky64 am 09 Januar 2022, 19:45:33
Man kann wohl den Speicher dazu bringen aus dem Netz zu laden.
Hab ich aber noch nicht versucht. Die 500W-Ladungen sind ja "nur" Zwangsladungen.
Das geht wohl wenn man die LadeLeistungsBegrenzung negativ setzt.
Aber wie gesagt ohne Gewähr.

Im WR kann/muss man sicher noch Laden aus dem Netz aktivieren.
Und zum dritten, darfst du das? Ich musste beim Netzanschlussantrag angeben ob ich aus dem Netz lade.
Macht es auch Sinn aus dem Netz zu laden, sprich hast du einen variablen Tarif und ist der so niedrig das er die Speicherverluste ausgleicht?
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: sn0000py am 10 Januar 2022, 10:13:07
werd ich mal testen.

Ist im Moment nur eine überlegeung, (zumindest bei uns in Österreich) gibt es den Anbieter aWATTar, der hat stündliche preise, je nach Sonne und Wind  da gehen die preise von 5 cent/kw bis 37 cent/kw.
Und meistens sind die preise in der Nacht günstig (wenig verbrauch und eher viel Wind)

Und ob nun eine Auto mit Akku oder mein Akku von BYD dran hängt?
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: BOFH am 14 April 2022, 12:06:43
hab mir gerade mal den modbus aktiviert.

Ich muss mal ahnungslos fragen.  Wozu möchte man denn den Ladestatus des Speichers steuern? Wo ist der benefit?
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: yoda_gh am 14 April 2022, 14:10:04
Zitat von: BOFH am 14 April 2022, 12:06:43
Ich muss mal ahnungslos fragen.  Wozu möchte man denn den Ladestatus des Speichers steuern? Wo ist der benefit?

Leider ist die Gen24-Ladesteuerung ziemlich dämlich: wenn vormittags Überschuss da ist, wird mit maximaler Leistung geladen, bis die Batterie voll ist. Und mittags drosselt sich dann die Anlage, um nicht zu viel Strom einzuspeisen...

Ich habe zum Beispiel die Lade-Leistung generell auf 2kW begrenzt, um die Batterie zu schonen. Außerdem wertet FHEM die vom DWD vorausgesagten Sonnenstunden aus - und an einem sonnigen Tag lade ich vormittags nur wenig und erst ab 11:00 dann mit 2 kW.

Ein weiterer Punkt ist, dass er an trüben Tagen, wenn die PV-Leistung knappi ist, ständig zwischen Laden und Entladen wechselt, was vermutlich für die Batterie alles andere als schonend ist. Dazu habe ich allerdings noch keine Lösung umgesetzt...
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: BOFH am 21 April 2022, 08:23:27
hochinteressant ...
hab die Wetterprognose aus dem Wiki auch mal aktiviert - das kommt zwar noch nicht ganz hin aber schon ein guter Anhaltspunkt.

Mag denn jemand eventuell seine Geistige Überlegung/Code teilen zur steuerung des Lademanagement.
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: yoda_gh am 22 April 2022, 21:02:27
Gerne! Ich habe erstmal meine ModBusAttr-Definitionen weiter oben im Thread (https://forum.fhem.de/index.php/topic,117853.msg1157410.html#msg1157410 und https://forum.fhem.de/index.php/topic,117853.msg1158469.html#msg1158469) um die Batterie-Werte ergänzt.

Und hier die wichtigsten Eckpunkte zur Steuerung - wenn Du mehr Details brauchst, gerne fragen. :)

In der Früh setzt ein at-Device je nach erwarteter Sonnenintensität das Lade-Maximum auf 200 oder 2000 Watt:


define gen24_bat_morgens at *05:10\
{\
  if (ReadingsVal("dwd","globalstrhlg_11bis15",0) > 350)\
  {\
    fhem("set gen24 BatConfigMaxChargeWatt 200") \
  } else {\
    fhem("set gen24 BatConfigMaxChargeWatt 2000") \
  }\
}


Um 11:00 wird dann in jedem Fall auf 2000 W geschaltet:


define gen24_bat_mittags at *11:05\
{\
  if (ReadingsVal("gen24","BatConfigMaxChargeWatt",0) < 1700)\
  {\
    fhem("set gen24 BatConfigMaxChargeWatt 1700") \
  }\
}


Ich habe nur den Batterie-Minimalausbau, also 5,12 kWh, die 2000 W habe ich gewählt, um die Batterie etwas schonender aufzuladen als in der Standard-Konfiguration vom Gen24, der sie sonst in einer Stunde vollballert.

Hier noch die Definition des dwd-Devices:


defmod dwd DWD_OpenData
attr dwd forecastDays 0
attr dwd forecastProperties Td, TTT, FX1, Neff, RR1c, R110,R105,Rad1h,Sa3
attr dwd forecastResolution 1
attr dwd forecastStation K4xxx
attr dwd userReadings globalstrhlg_11bis15 { (ReadingsVal($name,"fc0_12_Rad1h",0) + ReadingsVal($name,"fc0_13_Rad1h",0) + ReadingsVal($name,"fc0_14_Rad1h",0) + ReadingsVal($name,"fc0_15_Rad1h",0)) / (4*3.6) }


(In Kurzfassung: hole einige Werte (TTT = Temperatur, ..., Rad1h = Sonnen-Globalstrahlung für eine Std) aus der Wettervorhersage nur für den aktuellen Tag (0 Days) für die Wetterstation K4xxx in einer Auflösung von einer Stunde. Das userReading addiert dann einfach die Stundenwerte für 12 Uhr, 13 Uhr, 14 Uhr und 15 Uhr. Was die anderen komischen Kürzel bedeuten und wie Du an die Station-ID für Deine Stadt kommst, ist in der Doku zu DWD_OpenData beschrieben - wenn was unklar ist, gerne fragen. :) )

Die Globalstrahlung ist nicht perfekt, da sie nicht linear mit der PV-Leistung korreliert - im Winter bekomme ich bei deutlich niedrigerer Globalstrahlung volle PV-Leistung als im Sommer, aber es funktionert so trotzdem schon diverse Monate ganz gut.

Wenn ich mich richtig erinnere, hatte ich mir damals auch den Wolkenbedeckungs-Grad und die Sonnenstunden im Vergleich zur PV-Leistung angeschaut, aber die Globalstrahlung schien mir trotzdem am besten zu korrelieren.
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: yoda_gh am 22 April 2022, 21:32:07
Was mir noch (immer) nicht gefällt, ist, dass der Gen24 an trüben Tagen x-fach schnell zwischen Laden und Entladen der Batterie hin- und herschaltet, wenn die PV-Leistung unseren Stromverbrauch nur zeitweise abdeckt. Ich dachte eigentlich, das Umschalten zwischen Entladen und Laden wäre der Haupt-Stress für einen Akku (neben 0% oder 100% Entladen/Laden), daher ist mein Plan, das Entladen komplett zu verbieten, bis der Akku einen gewissen Füllstand erreicht hat - in der Hoffnung, damit die Lebensdauer der Akku-Zellen zu verlängern.

Ob das aber wirklich notwendig/sinnvoll ist, weiß ich nicht und umgesetzt habe ich es auch noch nicht...
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: Syon am 26 August 2022, 19:39:51
Darf ich mich mal einharken?
Ich habe
define Fronius_GEN24 fronius 192.168.2.10
attr Fronius_GEN24 icon measure_photovoltaic_inst
attr Fronius_GEN24 room Solar
#attr fronius delay 600
#
# FileLog Definition
#
define FroniusLog.File FileLog ./log/Fronius-%Y-%m.log Fronius_GEN24:Inverter_Common_PAC_Value|Fronius_GEN24:Inverter_Common_DAY_ENERGY_Value
attr FroniusLog.File icon icoLog
attr FroniusLog.File logtype text
attr FroniusLog.File nrarchive 12
attr FroniusLog.File room Solar
#
# Chart
#
define SVG_FroniusLog.File SVG FroniusLog.File:SVG_FroniusLog.File:CURRENT
attr SVG_FroniusLog.File room Solar
attr SVG_FroniusLog.File title "Solarleistung Min $data{min1}kW, Max $data{max1}kW, Letzter $data{currval1}kW"

Aber zum einen wird nur Inverter_Common_PAC_Value geloggt und zum anderen liefert mein Gen24 bei den Tageswerten nur 0

2022-08-26_19:47:36 Fronius_GEN24 connected
2022-08-26_19:47:36 Fronius_GEN24 API_BaseURL: /solar_api/v1/
2022-08-26_19:47:36 Fronius_GEN24 API_CompatibilityRange: 1.7-6
2022-08-26_19:47:36 Fronius_GEN24 API_APIVersion: 1
2022-08-26_19:47:41 Fronius_GEN24 DeviceInfo_Inverter_1_DT: 1
2022-08-26_19:47:41 Fronius_GEN24 DeviceInfo_Inverter_1_Serial: xxx
2022-08-26_19:47:46 Fronius_GEN24 PowerFlow_Inverters_1_DT: 1
2022-08-26_19:47:46 Fronius_GEN24 PowerFlow_Inverters_1_E_Day: 0
2022-08-26_19:47:46 Fronius_GEN24 PowerFlow_Inverters_1_E_Year: 0
2022-08-26_19:47:46 Fronius_GEN24 PowerFlow_Inverters_1_P: 1.43144738674164
2022-08-26_19:47:46 Fronius_GEN24 PowerFlow_Inverters_1_E_Total: 967224.642222222
2022-08-26_19:47:46 Fronius_GEN24 PowerFlow_Version: 12
2022-08-26_19:47:46 Fronius_GEN24 PowerFlow_Site_rel_SelfConsumption: 0
2022-08-26_19:47:46 Fronius_GEN24 PowerFlow_Site_P_PV: 109.232788085938
2022-08-26_19:47:46 Fronius_GEN24 PowerFlow_Site_E_Total: 967224.642222222
2022-08-26_19:47:46 Fronius_GEN24 PowerFlow_Site_rel_Autonomy: 0
2022-08-26_19:47:46 Fronius_GEN24 PowerFlow_Site_P_Akku: 0
2022-08-26_19:47:46 Fronius_GEN24 PowerFlow_Site_E_Year: 0
2022-08-26_19:47:46 Fronius_GEN24 PowerFlow_Site_Mode: produce-only
2022-08-26_19:47:46 Fronius_GEN24 PowerFlow_Site_P_Load: 0
2022-08-26_19:47:46 Fronius_GEN24 PowerFlow_Site_Meter_Location: unknown
2022-08-26_19:47:46 Fronius_GEN24 PowerFlow_Site_BackupMode: false
2022-08-26_19:47:46 Fronius_GEN24 PowerFlow_Site_E_Day: 0
2022-08-26_19:47:46 Fronius_GEN24 PowerFlow_Site_P_Grid: 0
2022-08-26_19:47:46 Fronius_GEN24 MPPT1_DC_W: 0
2022-08-26_19:47:46 Fronius_GEN24 MPPT2_DC_W: 0
2022-08-26_19:47:52 Fronius_GEN24 Inverter_System_TOTAL_ENERGY_Values_1: 967224.642222222
2022-08-26_19:47:52 Fronius_GEN24 Inverter_System_TOTAL_ENERGY_Unit: Wh
2022-08-26_19:47:52 Fronius_GEN24 Inverter_System_PAC_Unit: W
2022-08-26_19:47:52 Fronius_GEN24 Inverter_System_PAC_Values_1: 0.951520919799805
2022-08-26_19:47:52 Fronius_GEN24 Inverter_System_YEAR_ENERGY_Unit: Wh
2022-08-26_19:47:52 Fronius_GEN24 Inverter_System_YEAR_ENERGY_Values_1: 0
2022-08-26_19:47:52 Fronius_GEN24 Inverter_System_DAY_ENERGY_Values_1: 0
2022-08-26_19:47:52 Fronius_GEN24 Inverter_System_DAY_ENERGY_Unit: Wh
2022-08-26_19:47:52 Fronius_GEN24 Inverter_3P_UAC_L2_Unit: V
2022-08-26_19:47:52 Fronius_GEN24 Inverter_3P_UAC_L2_Value: 237.169464111328
2022-08-26_19:47:52 Fronius_GEN24 Inverter_3P_IAC_L2_Value: 0.0178749337792397
2022-08-26_19:47:52 Fronius_GEN24 Inverter_3P_IAC_L2_Unit: A
2022-08-26_19:47:52 Fronius_GEN24 Inverter_3P_UAC_L1_Value: 237.860488891602
2022-08-26_19:47:52 Fronius_GEN24 Inverter_3P_UAC_L1_Unit: V
2022-08-26_19:47:52 Fronius_GEN24 Inverter_3P_IAC_L3_Value: 0.0165197961032391
2022-08-26_19:47:52 Fronius_GEN24 Inverter_3P_IAC_L3_Unit: A
2022-08-26_19:47:52 Fronius_GEN24 Inverter_3P_IAC_L1_Unit: A
2022-08-26_19:47:52 Fronius_GEN24 Inverter_3P_IAC_L1_Value: 0.0177133418619633
2022-08-26_19:47:52 Fronius_GEN24 Inverter_3P_UAC_L3_Value: 237.573181152344
2022-08-26_19:47:52 Fronius_GEN24 Inverter_3P_UAC_L3_Unit: V
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_IAC_Value: 0.052108071744442
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_IAC_Unit: A
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_UDC_2_Value: 482.462158203125
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_UDC_2_Unit: V
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_UDC_3_Value: 0
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_UDC_3_Unit: V
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_FAC_Unit: Hz
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_FAC_Value: 49.987922668457
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_IDC_Value: 0.126352742314339
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_IDC_Unit: A
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_IDC_2_Value: 0.11182726174593
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_IDC_2_Unit: A
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_UAC_Unit: V
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_UAC_Value: 237.720748901367
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_TOTAL_ENERGY_Unit: Wh
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_TOTAL_ENERGY_Value: 967224.642222222
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_SAC_Unit: VA
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_SAC_Value: 12.3756160736084
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_DAY_ENERGY_Unit: Wh
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_DAY_ENERGY_Value: 0
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_UDC_Unit: V
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_UDC_Value: 433.023223876953
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_PAC_Unit: W
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_PAC_Value: 0.951520919799805
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_YEAR_ENERGY_Value: 0
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_YEAR_ENERGY_Unit: Wh
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_DeviceStatus_ErrorCode: 0
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_DeviceStatus_InverterState: Running
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_DeviceStatus_StatusCode: 7
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_IDC_3_Unit: A
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Common_IDC_3_Value: 0
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Cumulation_PAC_Unit: W
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Cumulation_PAC_Value: 0.951520919799805
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Cumulation_TOTAL_ENERGY_Unit: Wh
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Cumulation_TOTAL_ENERGY_Value: 967224.642222222
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Cumulation_YEAR_ENERGY_Value: 0
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Cumulation_YEAR_ENERGY_Unit: Wh
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Cumulation_DeviceStatus_InverterState: Running
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Cumulation_DeviceStatus_StatusCode: 7
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Cumulation_DeviceStatus_ErrorCode: 0
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Cumulation_DAY_ENERGY_Value: 0
2022-08-26_19:47:52 Fronius_GEN24 Inverter_Cumulation_DAY_ENERGY_Unit: Wh

Habe ich irgendwas übersehen?
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: ZeitlerW am 05 September 2022, 15:44:18
Hi Syon,

Du hast leider den Thread verwechselt, da hier über die Modbus - Anbindung diskutiert wird. Hier gehts zum API - Modul https://forum.fhem.de/index.php/topic,113850.0.html (https://forum.fhem.de/index.php/topic,113850.0.html)

... Aber ja, ich hatte das Problem mit dem Inverter_Common_PAC_Value und habe dies wie folgt über Modbus gelöst:

defmod gen24 ModbusAttr 1 30 192.168.6.215:502 TCP
attr gen24 DbLogInclude (Limit|ACPower|ArbeitGesamt|statArbeitGesamtDayLast|statArbeitGesamtHourLast)
attr gen24 dev-h-combine 125
attr gen24 dev-h-defFormat %.2f
attr gen24 dev-h-defUnpack f>
attr gen24 event-on-change-reading .*
attr gen24 obj-h40091-len 2
attr gen24 obj-h40091-reading ACPower
attr gen24 obj-h40101-len 2
attr gen24 obj-h40101-poll 1
attr gen24 obj-h40101-reading ACEnergy
attr gen24 obj-h40107-len 2
attr gen24 obj-h40107-poll 1
attr gen24 obj-h40107-reading DCPower
attr gen24 obj-h40109-len 2
attr gen24 obj-h40109-poll 1
attr gen24 obj-h40109-reading CabinetTemperature
attr gen24 obj-h40242-format %d
attr gen24 obj-h40242-len 1
attr gen24 obj-h40242-reading Limit
attr gen24 obj-h40242-set 1
attr gen24 obj-h40242-setexpr $val
attr gen24 obj-h40242-unpack s>
attr gen24 obj-h40243-len 1
attr gen24 obj-h40243-reading TimeWindow
attr gen24 obj-h40243-set 1
attr gen24 obj-h40243-setexpr $val
attr gen24 obj-h40243-unpack s>
attr gen24 obj-h40244-len 1
attr gen24 obj-h40244-reading TimePeriod
attr gen24 obj-h40244-set 1
attr gen24 obj-h40244-setexpr $val
attr gen24 obj-h40244-unpack s>
attr gen24 obj-h40245-len 1
attr gen24 obj-h40245-reading TimeRamp
attr gen24 obj-h40245-set 1
attr gen24 obj-h40245-setexpr $val
attr gen24 obj-h40245-unpack s>
attr gen24 obj-h40246-format %d
attr gen24 obj-h40246-len 1
attr gen24 obj-h40246-reading Enabled
attr gen24 obj-h40246-set 1
attr gen24 obj-h40246-setexpr $val
attr gen24 obj-h40246-unpack n
attr gen24 room Zaehler
attr gen24 userReadings ArbeitGesamt { sprintf("%.3f",ReadingsVal($name,"ACEnergy",0)/1000)}


lG
Wolfgang
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: Syon am 05 September 2022, 15:48:10
ZitatDu hast leider den Thread verwechselt
Oups... sorry  ::)

Zitat... und habe dies wie folgt über Modbus gelöst:
Das teste ich direkt mal, Danke
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: geoker am 03 Dezember 2022, 11:43:47
Hallo,
zum einen: Die bisherigen Dinge haben sehr geholfen. Danke!

Ein Hinweis: Fronius stellt die Schnittstellen-Doku bereit. Man muss sich nur mit einer E-Mail anmelden:
z.B. Hier:
https://www.fronius.com/en/solar-energy/installers-partners/technical-data/all-products/system-monitoring/open-interfaces/modbus-tcp (https://www.fronius.com/en/solar-energy/installers-partners/technical-data/all-products/system-monitoring/open-interfaces/modbus-tcp)

Ich selber habe jetzt einen neuen Stromtarif bekommen: Niedertarif 30Ct/kWh 22-6h; Hochtarif 60Ct/kWh
Da lohnt sich die Nachtladung.

Anmerkung: Da ich aus der Batterie keinen Strom ins Netz Einspeise, sondern nur selbst verbrauche, macht es nichts, wenn "Graustrom" dabei ist. Die EEG Vergütung (8.5Ct/kWh) erhalte ich nur für EEG-Strom Einspeisung aus der PV (wenn die Batterie voll ist). Wer will die schon eine Einspeisevergütung, wenn man Faktor 5 mehr bezahlt, als man bekommt? Damit erschleiche ich mir also keine "EEG-Förderung" und das Vorgehen ist so auch sauber.


Die Nachladefunktion selber ist ein DOIF
Variablen:

gen24 / Das Modbus-TCP-Modul
Tarifinfo /  "Dummy" der HT/NT im FHEM nun ermittelt (über at gesteuert)
SpeicherExtSOC /  "Dummy" der die "Zielnachladung" als SOC enthält. Dort soll später mal abhängig von der Wetterprognose ein Nachlade-wert in der NT-Zeit eingespeichert werden. (Regen&Schnee z.B. 96%, Sonne ab 8:00 z.B. 20%)




## 1 Lade mit 1.3kW damit in 8h 10 kWh sicher geladen werden können
([Tarifinfo:state] eq "NT" and [gen24:BatteryChargePercent] <= ([SpeicherExtSOC]-5))
   ({Log 1, "Speicher ext. Laden"}, set gen24 BatConfigMaxDischargeWatt -1300)
## 2 Reduziere langsam die Ladeleistung
DOELSEIF
([Tarifinfo:state] eq "NT" and [gen24:BatteryChargePercent] <= ([SpeicherExtSOC]-3))
   ({Log 1, "Speicher ext. Laden"}, set gen24 BatConfigMaxDischargeWatt -750)
## 3 Reduziere weiter die ladeleistung
DOELSEIF
([Tarifinfo:state] eq "NT" and [gen24:BatteryChargePercent] <= ([SpeicherExtSOC]-1))
   ({Log 1, "Speicher ext. Laden"}, set gen24 BatConfigMaxDischargeWatt -250)
## 4 Totband im Bereich um Ziel-0.99% bis Ziel SOC-0.01% - Dort wird entweder weiter geladen oder das laden nicht gestartet
DOELSEIF
([Tarifinfo:state] eq "NT" and [gen24:BatteryChargePercent] < ([SpeicherExtSOC]-0))
   ({Log 1, "änder nichts am Zustand = Totband"})
## 5 -  Ziel SOC erreicht - Laden beenden
DOELSEIF ([Tarifinfo:state] eq "NT" and [gen24:BatteryChargePercent] == [SpeicherExtSOC])
   ({Log 1, "Speicher ext. Pause"}, set gen24 BatConfigMaxDischargeWatt 0)
## 6 - Default setze in autmatischen Regelmodus im vollen Bereich
DOELSE
   ({Log 1, "Speicher ext. Laden beenden"}, set gen24 BatConfigMaxDischargeWatt 10240.0)



Vielleicht nützt es ja wem für Copy&Paste.
Wenn irgendwer einen tipp hat wie man den "Wetterabhängigen Energiebedarf" pfiffig ermittelt und den SOC-Setzt  - Danke :)
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: Marlen am 11 Dezember 2022, 21:43:57
Hi, die Verbindung hab ich soweit hin bekommen,
aber wie kann ich jetzt die min. Ladeleistung einstellen?

LG
  Marlen
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: Marlen am 12 Dezember 2022, 19:22:11
Siehe Anhang

Ich möchte diese Regeln per Modbus aktivieren bzw. deaktivieren.
Ideal wäre natürlich die Werte per Modbus anzupassen.

LG
Marlen
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: mediastudio am 03 Februar 2023, 17:55:54
Hallo, ich habe da ein Problem das wohl bestimmt gelöst ist.
Ich habe nun auch ein Fronius symo gen24 8.0 plus mit Speicher.
Die Anbindung über Modbus TCP mit FHEM funktioniert.
ich habe auch die Modbus Register, leider zeigen die mir Werte mit denen ich nichts anfangen kann.
Ich brauche den Momentanwert der PV-Leistung. Mit meinem SMA ist das kein Problem gewesen,
aber hier bin ich am verzweifeln. Wer kann mir denn da mal helfen.
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: Marlen am 03 Februar 2023, 20:29:39
Das geht mit dem Fronius Modul.

LG
  Marlen
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: sky64 am 04 Februar 2023, 09:38:17
Stimmt das Datenformat int bzw float?
Das muss mit der Einstellung im Wechselrichter übereinstimmen.
Außerdem muss man von den Registernummer aus dem Fronius xml immer 1 abziehen.


Für die aktuelle Leistung kann man auch über die Web-API abfragen.
Das Fronius-Modul macht das auch so. Ich habe es aber wieder aufgegeben, da dort immer sporadisch falsche Zahlen kamen. Ich frage die API selbst per HTTPMOD ab und das läuft stabil.
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: mediastudio am 04 Februar 2023, 12:26:45
Hallo, ich hänge hier am modbus fest.
Die Ankopplung Modbus / TCP kein Problem, Daten in Fhem werden ausgelesen und auch
aktualisiert, aber mit den Weten kann ich nichts anfangen sind für mich noch
leider nicht richtig dargestellt. Ich habe seit dem 30.02.2023 einen 
Fronius Symo Gen24 8.0 PLUS Solar PV HybridWechselrichter und ein
Fronius Smart Meter TS 65A-3 Bidirektionale Zähler das über den Modbus mit dem
Dem Wechselrichter verbunden ist. Zusätzlich wurde auch ein BYD Batteriespeicher
B-Box Premium HVS 7.7 kWh installiert. Zuvor war ein SMA Wechselrichter ohne Speicher
im Betrieb. Vom SMA habe ich die Werte ohne Probleme sauber angezeigt.
Ich brauche unbedingt den ,,Aktuelle Leistung von der PV-Anlage" dann auch vom Smart Meter
ob Leistung ins Netz gespeist oder gezogen wird.
So sieht es bei mir aus, ich bekomme von allen Registern Werte.

################################ 
### Fronius symo gen24 8.0 plus
################################
define gen24 ModbusAttr 1 10 192.168.10.49:502 TCP
attr gen24 dev-h-defExpr $val & 0x1FFFFFFF
attr gen24 dev-h-defLen 2
attr gen24 dev-h-defPoll 1
attr gen24 dev-h-defUnpack N
attr gen24 devStateIcon ok:on fault:message_attention warnings:message_attention
attr gen24 room FRONIUS
attr gen24 obj-h40109-format %.2f
attr gen24 obj-h40109-len 2
attr gen24 obj-h40109-reading Temperatur
attr gen24 obj-h40109-unpack f>
attr gen24 obj-h40344-expr $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
attr gen24 obj-h40344-len 1
attr gen24 obj-h40344-reading BatteryDischargeWatt
attr gen24 obj-h40344-unpack n
attr gen24 obj-h40073-expr ($val  & 0x1FFFFFFF ) / 1000
attr gen24 obj-h40073-reading ACCurrentPhaseA
attr gen24 obj-h40075-expr ($val  & 0x1FFFFFFF ) / 1000
attr gen24 obj-h40075-reading ACCurrentPhaseB
attr gen24 obj-h40077-expr ($val  & 0x1FFFFFFF ) / 1000
attr gen24 obj-h40077-reading ACCurrentPhaseC
attr gen24 obj-h40058-expr ($val  & 0x1FFFFFFF ) / 1000
attr gen24 obj-h40085-reading ACVoltagePhaseA
attr gen24 obj-h40087-expr ($val  & 0x1FFFFFFF ) / 1000
attr gen24 obj-h40087-reading ACVoltagePhaseB
attr gen24 obj-h40089-expr ($val  & 0x1FFFFFFF ) / 1000
attr gen24 obj-h40089-reading ACVoltagePhaseC
attr gen24 obj-h40091-format %.0f
attr gen24 obj-h40091-reading ACPower
attr gen24 obj-h40093-expr ($val  & 0x1FFFFFFF ) / 500
attr gen24 obj-h40093-format %.0f
attr gen24 obj-h40093-len 2
attr gen24 obj-h40093-reading ACFrequency
attr gen24 obj-h40117-format %s
attr gen24 obj-h40117-len 1
attr gen24 obj-h40117-map 1:off,2:sleeping,3:starting,4:active,5:throttled,6:shutdown,7:fault,8:standby
attr gen24 obj-h40117-reading status
attr gen24 obj-h40117-unpack n
attr gen24 obj-h40196-expr $val / 1000
attr gen24 obj-h40196-format %.2f
attr gen24 obj-h40196-len 4
attr gen24 obj-h40196-reading ACActEnergy
attr gen24 obj-h40196-unpack Q>
attr gen24 obj-h40267-format %d
attr gen24 obj-h40267-len 1
attr gen24 obj-h40267-reading DCPowerScale
attr gen24 obj-h40267-unpack s>
attr gen24 obj-h40304-expr $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
attr gen24 obj-h40304-len 1
attr gen24 obj-h40304-reading DCPowerMPPT2
attr gen24 obj-h40304-unpack n
attr gen24 obj-h40324-expr $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
attr gen24 obj-h40324-reading BatteryChargeWatt
attr gen24 obj-h40324-unpack n
attr gen24 stateFormat Wirkleistung: Watt  Aktuelle Leistung
attr gen24 userattr obj-h30775-reading obj-h30775-unpack obj-h30775-poll obj-h30775-len
attr gen24 obj-h30201-map 35:fault,303:off,307:ok,455:warnings
attr gen24 obj-h30211-map 336:Contact manufacturer, 337:Contact installer, 338:invalid, 887:none
attr gen24 obj-h40355-len 1
attr gen24 obj-h40355-reading BatConfigMaxReferenceWatt
attr gen24 obj-h40355-unpack n
attr gen24 obj-h40358-format %s
attr gen24 obj-h40358-len 1
attr gen24 obj-h40358-map 0:none,1:chargeMax,2:dischrMax,3:bothMax
attr gen24 obj-h40358-reading BatConfigMaxEnabled
attr gen24 obj-h40358-set 1
attr gen24 obj-h40358-unpack n
attr gen24 obj-h40360-expr $val / 100
attr gen24 obj-h40360-len 1
attr gen24 obj-h40360-reading BatConfigReserve
attr gen24 obj-h40360-unpack n
attr gen24 obj-h40361-expr $val / 100
attr gen24 obj-h40361-len 1
attr gen24 obj-h40361-reading BatteryChargePercent
attr gen24 obj-h40361-unpack n
attr gen24 obj-h40364-format %s
attr gen24 obj-h40364-len 1
attr gen24 obj-h40364-map 1:off,2:empty,3:discharging,4:charging,5:full,6:holding,7:testing
attr gen24 obj-h40364-reading BatteryState
attr gen24 obj-h40364-unpack n
attr gen24 obj-h40365-expr $val / 10000 * ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40365-len 1
attr gen24 obj-h40365-max ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40365-min -ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40365-reading BatConfigMaxDischargeWatt
attr gen24 obj-h40365-set 1
attr gen24 obj-h40365-setexpr $val / ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1) * 10000
attr gen24 obj-h40365-unpack s>
attr gen24 obj-h40366-expr $val / 10000 * ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40366-len 1
attr gen24 obj-h40366-max ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40366-min -ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40366-reading BatConfigMaxChargeWatt
attr gen24 obj-h40366-set 1
attr gen24 obj-h40366-setexpr $val / ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1) * 10000
attr gen24 obj-h40366-unpack s>

Wer kann mir denn da auf die Sprünge helfen.
Gruß Wilfried
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: sky64 am 04 Februar 2023, 19:48:56
Bei mir sieht es so aus.
Attributes:
   DbLogExclude .*
   event-min-interval BYD_SoC:300
   event-on-change-reading BYD_SoC,Isolation,ChaSt
   obj-h40004-len 8
   obj-h40004-poll 900
   obj-h40004-reading Hersteller
   obj-h40004-unpack A*
   obj-h40091-expr $val/1
   obj-h40091-len 2
   obj-h40091-poll 30
   obj-h40091-reading AC-Power
   obj-h40091-unpack f>
   obj-h40109-format %.2f
   obj-h40109-len 2
   obj-h40109-poll 300
   obj-h40109-reading Temperatur
   obj-h40109-unpack f>
   obj-h40235-expr $val/100
   obj-h40235-poll 300
   obj-h40235-reading Isolation
   obj-h40325-expr $val/100000
   obj-h40325-len 2
   obj-h40325-min 1
   obj-h40325-poll 300
   obj-h40325-reading Summe_Ladung
   obj-h40325-unpack N
   obj-h40345-expr $val/100000
   obj-h40345-len 2
   obj-h40345-min 1
   obj-h40345-poll 300
   obj-h40345-reading Summe_Entladung
   obj-h40345-unpack N
   obj-h40355-poll 300
   obj-h40355-reading WChaMax
   obj-h40358-poll 300
   obj-h40358-reading StorCtl_Mod
   obj-h40358-set 1
   obj-h40360-expr $val/100
   obj-h40360-format %.2f
   obj-h40360-max 100
   obj-h40360-min 7
   obj-h40360-poll 60
   obj-h40360-reading BYD_min_Reserve
   obj-h40360-set 1
   obj-h40360-setexpr $val * 100
   obj-h40361-expr $val/100
   obj-h40361-format %.2f
   obj-h40361-poll 60
   obj-h40361-reading BYD_SoC
   obj-h40364-poll 60
   obj-h40364-reading ChaSt
   obj-h40365-expr $val/100
   obj-h40365-format %.2f
   obj-h40365-max 100
   obj-h40365-min 0
   obj-h40365-poll 60
   obj-h40365-reading BYD_max_discharge
   obj-h40365-set 1
   obj-h40365-setexpr $val * 100
   obj-h40366-expr $val/100
   obj-h40366-format %.2f
   obj-h40366-max 100
   obj-h40366-min 0
   obj-h40366-poll 60
   obj-h40366-reading BYD_max_charge
   obj-h40366-set 1
   obj-h40366-setexpr $val * 100


Wie gesagt mit dem Datenmodell float im WR!
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: mediastudio am 04 Februar 2023, 22:25:02
Hallo, ich bekomme die Fehlermeldunggen 24: unknown attribute DbLogExclude. Type 'attr gen24 ?' for a detailed list.
und es wird so nur BYD_SoC als Wert aktualisiert. Ich bin habe eigentlich alle Fronius Datamanager Register Map als Excel Tabelle.
ich bekomme ja auch Werte ausgelesen ich kann die Daten nur nicht richtig zuordnen.
Das habe ich nun gemacht, habe deine attr eingetragen, aber funktioniert bei mir noch nicht.

################################ 
### Fronius symo gen24 8.0 plus
################################
define gen24 ModbusAttr 1 10 192.168.10.49:502 TCP
attr gen24 room FRONIUS
attr gen24 alias Fronius symo gen24 8.0 plus

attr gen24 DbLogExclude .*
attr gen24 event-min-interval BYD_SoC:10
attr gen24 event-on-change-reading BYD_SoC,Isolation,ChaSt
attr gen24 obj-h40004-len 8
attr gen24 obj-h40004-poll 900
attr gen24 obj-h40004-reading Hersteller
attr gen24 obj-h40004-unpack A*
attr gen24 obj-h40091-expr $val/1
attr gen24 obj-h40091-len 2
attr gen24 obj-h40091-poll 10
attr gen24 obj-h40091-reading AC-Power
attr gen24 obj-h40091-unpack f>
attr gen24 obj-h40109-format %.2f
attr gen24 obj-h40109-len 2
attr gen24 obj-h40109-poll 10
attr gen24 obj-h40109-reading Temperatur
attr gen24 obj-h40109-unpack f>
attr gen24 obj-h40235-expr $val/100
attr gen24 obj-h40235-poll 10
attr gen24 obj-h40235-reading Isolation
attr gen24 obj-h40325-expr $val/100000
attr gen24 obj-h40325-len 2
attr gen24 obj-h40325-min 1
attr gen24 obj-h40325-poll 10
attr gen24 obj-h40325-reading Summe_Ladung
attr gen24 obj-h40325-unpack N
attr gen24 obj-h40345-expr $val/100000
attr gen24 obj-h40345-len 2
attr gen24 obj-h40345-min 1
attr gen24 obj-h40345-poll 10
attr gen24 obj-h40345-reading Summe_Entladung
attr gen24 obj-h40345-unpack N
attr gen24 obj-h40355-poll 10
attr gen24 obj-h40355-reading WChaMax
attr gen24 obj-h40358-poll 10
attr gen24 obj-h40358-reading StorCtl_Mod
attr gen24 obj-h40358-set 1
attr gen24 obj-h40360-expr $val/100
attr gen24 obj-h40360-format %.2f
attr gen24 obj-h40360-max 100
attr gen24 obj-h40360-min 7
attr gen24 obj-h40360-poll 10
attr gen24 obj-h40360-reading BYD_min_Reserve
attr gen24 obj-h40360-set 1
attr gen24 obj-h40360-setexpr $val * 100
attr gen24 obj-h40361-expr $val/100
attr gen24 obj-h40361-format %.2f
attr gen24 obj-h40361-poll 60
attr gen24 obj-h40361-reading BYD_SoC
attr gen24 obj-h40364-poll 10
attr gen24 obj-h40364-reading ChaSt
attr gen24 obj-h40365-expr $val/100
attr gen24 obj-h40365-format %.2f
attr gen24 obj-h40365-max 100
attr gen24 obj-h40365-min 0
attr gen24 obj-h40365-poll 10
attr gen24 obj-h40365-reading BYD_max_discharge
attr gen24 obj-h40365-set 1
attr gen24 obj-h40365-setexpr $val * 100
attr gen24 obj-h40366-expr $val/100
attr gen24 obj-h40366-format %.2f
attr gen24 obj-h40366-max 100
attr gen24 obj-h40366-min 0
attr gen24 obj-h40366-poll 10
attr gen24 obj-h40366-reading BYD_max_charge
attr gen24 obj-h40366-set 1
attr gen24 obj-h40366-setexpr $val * 100
Titel: Antw:Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: mediastudio am 04 Februar 2023, 22:34:31
Das Funktioniert in soweit das die Werte alle 10 Sekunden erneuert werden.
Aber mir sagen die noch nichts.

################################ 
### Fronius symo gen24 8.0 plus
################################
define gen24 ModbusAttr 1 10 192.168.10.49:502 TCP
#attr gen24 dev-h-defExpr $val & 0x1FFFFFFF
attr gen24 dev-h-defLen 2
attr gen24 dev-h-defPoll 1
#attr gen24 dev-h-defUnpack N
#attr gen24 devStateIcon ok:on fault:message_attention warnings:message_attention
attr gen24 room FRONIUS
attr gen24 alias Fronius symo gen24 8.0 plus
attr gen24 obj-h40109-format %.2f
attr gen24 obj-h40109-len 2
attr gen24 obj-h40109-reading Temperatur
attr gen24 obj-h40109-unpack f>
attr gen24 obj-h40344-expr $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
attr gen24 obj-h40344-len 1
attr gen24 obj-h40344-reading BatteryDischargeWatt
attr gen24 obj-h40344-unpack n
attr gen24 obj-h40073-expr ($val  & 0x1FFFFFFF ) / 1000
attr gen24 obj-h40073-reading ACCurrentPhaseA
attr gen24 obj-h40075-expr ($val  & 0x1FFFFFFF ) / 1000
attr gen24 obj-h40075-reading ACCurrentPhaseB
attr gen24 obj-h40077-expr ($val  & 0x1FFFFFFF ) / 1000
attr gen24 obj-h40077-reading ACCurrentPhaseC
attr gen24 obj-h40058-expr ($val  & 0x1FFFFFFF ) / 1000
attr gen24 obj-h40085-reading ACVoltagePhaseA
attr gen24 obj-h40087-expr ($val  & 0x1FFFFFFF ) / 1000
attr gen24 obj-h40087-reading ACVoltagePhaseB
attr gen24 obj-h40089-expr ($val  & 0x1FFFFFFF ) / 1000
attr gen24 obj-h40089-reading ACVoltagePhaseC
attr gen24 obj-h40091-format %.0f
attr gen24 obj-h40091-reading ACPower
attr gen24 obj-h40093-expr ($val  & 0x1FFFFFFF ) / 500
attr gen24 obj-h40093-format %.0f
attr gen24 obj-h40093-len 2
attr gen24 obj-h40093-reading ACFrequency
attr gen24 obj-h40117-format %s
attr gen24 obj-h40117-len 1
attr gen24 obj-h40117-map 1:off,2:sleeping,3:starting,4:active,5:throttled,6:shutdown,7:fault,8:standby
attr gen24 obj-h40117-reading status
attr gen24 obj-h40117-unpack n
attr gen24 obj-h40196-expr $val / 1000
attr gen24 obj-h40196-format %.2f
attr gen24 obj-h40196-len 4
attr gen24 obj-h40196-reading ACActEnergy
attr gen24 obj-h40196-unpack Q>
attr gen24 obj-h40267-format %d
attr gen24 obj-h40267-len 1
attr gen24 obj-h40267-reading DCPowerScale
attr gen24 obj-h40267-unpack s>
attr gen24 obj-h40304-expr $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
attr gen24 obj-h40304-len 1
attr gen24 obj-h40304-reading DCPowerMPPT2
attr gen24 obj-h40304-unpack n
attr gen24 obj-h40324-expr $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
attr gen24 obj-h40324-reading BatteryChargeWatt
attr gen24 obj-h40324-unpack n
attr gen24 stateFormat Wirkleistung: Watt  Aktuelle Leistung
attr gen24 userattr obj-h30775-reading obj-h30775-unpack obj-h30775-poll obj-h30775-len
attr gen24 obj-h30201-map 35:fault,303:off,307:ok,455:warnings
attr gen24 obj-h30211-map 336:Contact manufacturer, 337:Contact installer, 338:invalid, 887:none
attr gen24 obj-h40355-len 1
attr gen24 obj-h40355-reading BatConfigMaxReferenceWatt
attr gen24 obj-h40355-unpack n
attr gen24 obj-h40358-format %s
attr gen24 obj-h40358-len 1
attr gen24 obj-h40358-map 0:none,1:chargeMax,2:dischrMax,3:bothMax
attr gen24 obj-h40358-reading BatConfigMaxEnabled
attr gen24 obj-h40358-set 1
attr gen24 obj-h40358-unpack n
attr gen24 obj-h40360-expr $val / 100
attr gen24 obj-h40360-len 1
attr gen24 obj-h40360-reading BatConfigReserve
attr gen24 obj-h40360-unpack n
attr gen24 obj-h40361-expr $val / 100
attr gen24 obj-h40361-len 1
attr gen24 obj-h40361-reading BatteryChargePercent
attr gen24 obj-h40361-unpack n
attr gen24 obj-h40364-format %s
attr gen24 obj-h40364-len 1
attr gen24 obj-h40364-map 1:off,2:empty,3:discharging,4:charging,5:full,6:holding,7:testing
attr gen24 obj-h40364-reading BatteryState
attr gen24 obj-h40364-unpack n
attr gen24 obj-h40365-expr $val / 10000 * ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40365-len 1
attr gen24 obj-h40365-max ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40365-min -ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40365-reading BatConfigMaxDischargeWatt
attr gen24 obj-h40365-set 1
attr gen24 obj-h40365-setexpr $val / ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1) * 10000
attr gen24 obj-h40365-unpack s>
attr gen24 obj-h40366-expr $val / 10000 * ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40366-len 1
attr gen24 obj-h40366-max ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40366-min -ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40366-reading BatConfigMaxChargeWatt
attr gen24 obj-h40366-set 1
attr gen24 obj-h40366-setexpr $val / ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1) * 10000
attr gen24 obj-h40366-unpack s>
Titel: Aw: Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: Mad-at am 20 Juni 2023, 14:48:29
Hallo!
Ich hoffe es ist ok wen nich das hier nochmal öffne. Ich habe versucht das "nachzukochen", aber es wird nur ein Bruchteil der angefragten Werte erfolgreich ausgelesen. Und insbesondere die Batterieladelimits werden leider nicht gelesen.
Außerdem ist der unpack für den Status anscheinend nicht richtig(?) jedenfalls bekomme ich auch hier kryptische Werte.
Verbose 5 und Log war für mich jetzt auch nicht wirklich erhellend.
Weiß jemand was ich falsch mache?

Internals:
   CFGFN     
   DEF        200 120 192.168.x.x:502 TCP
   DeviceName 192.168.x.x:502
   EXPECT     idle
   FD         20
   FUUID      64918017-f33f-db1a-9f03-20b8a3e77ce1ed8c
   IODev      gen24_Modbus
   Interval   120
   LASTOPEN   1687264954.49101
   MODBUSID   200
   MODE       master
   MODULEVERSION Modbus 4.4.14 - 30.1.2023
   NAME       gen24_Modbus
   NOTIFYDEV  global
   NR         5359
   NTFY_ORDER 50-gen24_Modbus
   PARTIAL   
   PROTOCOL   TCP
   STATE      49946 BatteryState 416 W
   TCPConn    1
   TYPE       ModbusAttr
   devioLoglevel 3
   eventCount 67
   nextOpenDelay 60
   Helper:
     DBLOG:
       ACPower:
         DBLogging:
           TIME       1687265130.90813
           VALUE      416
       EnergyExported:
         DBLogging:
           TIME       1687257831.75675
           VALUE      0.0
       EnergyImported:
         DBLogging:
           TIME       1687257831.75675
           VALUE      0.0
       PVConsumedEnergy:
         DBLogging:
           TIME       1687260556.03442
           VALUE      0
       PowerA:
         DBLogging:
           TIME       1687257831.75675
           VALUE      -101879494177092511711538165737062400.0
       PowerA_oPV:
         DBLogging:
           TIME       1687257831.75675
           VALUE      -1.01879494177093e+35
       PowerB:
         DBLogging:
           TIME       1687257831.75675
           VALUE      NaN
       PowerB_oPV:
         DBLogging:
           TIME       1687257831.75675
           VALUE      NaN
       PowerC:
         DBLogging:
           TIME       1687257831.75675
           VALUE      0.0
       PowerC_oPV:
         DBLogging:
           TIME       1687257831.75675
           VALUE      0
       state:
         DBLogging:
           TIME       1687265031.64653
           VALUE      reread
       status:
         DBLogging:
           TIME       1687263822.65114
           VALUE      49946
   OLDREADINGS:
   QUEUE:
   READ:
     BUFFER     
   READINGS:
     2023-06-20 14:45:30   ACCurrentPhaseA -9.0
     2023-06-20 14:45:30   ACCurrentPhaseB -9.3
     2023-06-20 14:45:30   ACCurrentPhaseC -9.7
     2023-06-20 14:45:30   ACFrequency     412.4
     2023-06-20 14:45:30   ACPower         416
     2023-06-20 14:45:30   ACVoltagePhaseA 238.3
     2023-06-20 14:45:30   ACVoltagePhaseB 414.7
     2023-06-20 14:45:30   ACVoltagePhaseC 415.6
     2023-06-20 14:45:30   CabinetTemperature 22.45
     2023-06-20 14:45:30   EnergyExported  9930.5
     2023-06-20 14:45:30   EnergyImported  2270.3
     2023-06-20 14:45:30   Frequency       50.0
     2023-06-20 14:45:30   PVConsumedEnergy 0
     2023-06-20 14:45:30   PfA             1.0
     2023-06-20 14:45:30   PfB             -1.0
     2023-06-20 14:45:30   PfC             -1.0
     2023-06-20 14:45:30   Power           -6676.7
     2023-06-20 14:45:30   PowerA          -2138.7
     2023-06-20 14:45:30   PowerB          -2239.3
     2023-06-20 14:45:30   PowerC          -2298.5
     2023-06-20 14:45:30   VoltageA        237.9
     2023-06-20 14:45:30   VoltageB        242.1
     2023-06-20 14:42:34   state           opened
     2023-06-20 14:23:42   status          49946
   REMEMBER:
     lid        200
     lname      gen24_Modbus
     lrecv      1687265131.09013
     lsend      1687265131.08908
   defptr:
     gen24_Modbus 200
   gotReadings:
     ACCurrentPhaseA -9.0
     ACCurrentPhaseB -9.3
     ACCurrentPhaseC -9.7
     ACFrequency 412.4
     ACPower    416
     ACVoltagePhaseA 238.3
     ACVoltagePhaseB 414.7
     ACVoltagePhaseC 415.6
     CabinetTemperature 22.45
     EnergyExported 9930.5
     EnergyImported 2270.3
     Frequency  50.0
     PfA        1.0
     PfB        -1.0
     PfC        -1.0
     Power      -6676.7
     PowerA     -2138.7
     PowerB     -2239.3
     PowerC     -2298.5
     VoltageA   237.9
     VoltageB   242.1
   lastRead:
     h40073     1687265130.8886
     h40075     1687265130.88943
     h40077     1687265130.89023
     h40081     1687265130.89103
     h40083     1687265130.89182
     h40085     1687265130.89267
     h40087     1687265130.89347
     h40089     1687265130.89427
     h40091     1687265130.89509
     h40093     1687265130.8959
     h40095     1687265130.89694
     h40097     1687265130.89775
     h40099     1687265130.89918
     h40101     1687265130.90006
     h40103     1687265130.90086
     h40109     1687265130.90198
     h40117     1687263822.64406
     h40123     1687265130.90325
     h40125     1687265130.90405
     h40127     1687265130.90484
     h40129     1687265130.90591
     h40137     1687265130.90696
Attributes:
   dev-h-combine 125
   dev-h-defFormat %.1f
   dev-h-defLen 2
   dev-h-defPoll 1
   dev-h-defUnpack f>
   event-min-interval ACActEnergy:7200,ACPower:7200,Battery.*:7200
   event-on-change-reading .*Energy:0.1,ACPower:1,DCPowerMPPT.*:1,status,Battery.*harge.*:1,BatteryState
   obj-h40073-reading ACCurrentPhaseA
   obj-h40075-reading ACCurrentPhaseB
   obj-h40077-reading ACCurrentPhaseC
   obj-h40081-reading VoltageA
   obj-h40083-reading VoltageB
   obj-h40085-reading ACVoltagePhaseA
   obj-h40087-reading ACVoltagePhaseB
   obj-h40089-reading ACVoltagePhaseC
   obj-h40091-format %.0f
   obj-h40091-reading ACPower
   obj-h40093-reading ACFrequency
   obj-h40095-reading Frequency
   obj-h40097-reading Power
   obj-h40099-reading PowerA
   obj-h40101-reading PowerB
   obj-h40103-reading PowerC
   obj-h40109-expr $val / 100
   obj-h40109-format %.2f
   obj-h40109-len 2
   obj-h40109-reading CabinetTemperature
   obj-h40109-unpack f>
   obj-h40117-format %s
   obj-h40117-len 1
   obj-h40117-map 1:off,2:sleeping,3:starting,4:active,5:throttled,6:shutdown,7:fault,8:standby
   obj-h40117-reading status
   obj-h40117-unpack f>
   obj-h40123-reading PfA
   obj-h40125-reading PfB
   obj-h40127-reading PfC
   obj-h40129-expr $val / 1000
   obj-h40129-reading EnergyExported
   obj-h40137-expr $val / 1000
   obj-h40137-reading EnergyImported
   obj-h40196-expr $val / 1000
   obj-h40196-format %.2f
   obj-h40196-len 4
   obj-h40196-reading ACActEnergy
   obj-h40196-unpack Q>
   obj-h40267-format %d
   obj-h40267-group 1-1
   obj-h40267-len 1
   obj-h40267-reading DCPowerScale
   obj-h40267-unpack s>
   obj-h40284-expr $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
   obj-h40284-group 1-2
   obj-h40284-len 1
   obj-h40284-reading DCPowerMPPT1
   obj-h40284-unpack n
   obj-h40286-expr $val / 100
   obj-h40286-format %.2f %
   obj-h40286-len 2
   obj-h40286-reading BatteryLifetimeEnergy
   obj-h40304-expr $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
   obj-h40304-group 1-3
   obj-h40304-len 1
   obj-h40304-reading DCPowerMPPT2
   obj-h40304-unpack n
   obj-h40324-expr $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
   obj-h40324-group 1-4
   obj-h40324-len 1
   obj-h40324-reading BatteryChargeWatt
   obj-h40324-unpack n
   obj-h40344-expr $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
   obj-h40344-group 1-5
   obj-h40344-len 1
   obj-h40344-reading BatteryDischargeWatt
   obj-h40344-unpack n
   obj-h40355-len 1
   obj-h40355-reading BatConfigMaxReferenceWatt
   obj-h40355-unpack n
   obj-h40358-format %s
   obj-h40358-len 1
   obj-h40358-map 0:none,1:chargeMax,2:dischrMax,3:bothMax
   obj-h40358-reading BatConfigMaxEnabled
   obj-h40358-set 1
   obj-h40358-unpack n
   obj-h40360-expr $val / 100
   obj-h40360-format %.2f %
   obj-h40360-len 1
   obj-h40360-reading BatConfigReserve
   obj-h40360-set 1
   obj-h40360-setexpr $val * 100
   obj-h40360-unpack n
   obj-h40361-expr $val / 100
   obj-h40361-format %.2f %
   obj-h40361-len 1
   obj-h40361-reading BatteryChargePercent
   obj-h40361-unpack n
   obj-h40362-expr $val / 100
   obj-h40362-format %.2f %
   obj-h40362-len 1
   obj-h40362-reading CurrentBatteryCharge
   obj-h40362-unpack n
   obj-h40364-format %s
   obj-h40364-len 1
   obj-h40364-map 1:off,2:empty,3:discharging,4:charging,5:full,6:holding,7:testing
   obj-h40364-reading BatteryState
   obj-h40364-unpack n
   obj-h40365-expr $val / 10000 * ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
   obj-h40365-format %.2f %
   obj-h40365-len 1
   obj-h40365-max ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
   obj-h40365-min -ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
   obj-h40365-reading BatConfigMaxDischargeWatt
   obj-h40365-set 1
   obj-h40365-setexpr $val / ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1) * 10000
   obj-h40365-unpack s>
   obj-h40366-expr $val / 10000 * ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
   obj-h40366-format %.2f %
   obj-h40366-len 1
   obj-h40366-max ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
   obj-h40366-min -ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
   obj-h40366-reading BatConfigMaxChargeWatt
   obj-h40366-set 1
   obj-h40366-setexpr $val / ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1) * 10000
   obj-h40366-unpack s>
   stateFormat status BatteryState ACPower W
   userReadings PVConsumedEnergy { ReadingsVal($name,"ACActEnergy",0) - ReadingsVal("gen24_meter","EnergyExported",0) }
   verbose    1
Titel: Aw: Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: yoda_gh am 20 Juni 2023, 18:23:25
Zitat von: Mad-at am 20 Juni 2023, 14:48:29Ich hoffe es ist ok wen nich das hier nochmal öffne. Ich habe versucht das "nachzukochen", aber es wird nur ein Bruchteil der angefragten Werte erfolgreich ausgelesen. Und insbesondere die Batterieladelimits werden leider nicht gelesen.
Außerdem ist der unpack für den Status anscheinend nicht richtig(?) jedenfalls bekomme ich auch hier kryptische Werte.

Wie schon früher in diesem Thread beschrieben, ist auch die passende Modbus-Einstellung (z.B. int vs float) im Gen24 entscheidend, was hast du dort genau konfiguriert?
Titel: Aw: Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: Mad-at am 21 Juni 2023, 23:10:37
Float - sonst bekäme ich ja nirgendwo sinnvolle Werte, alle anderen angezeigten Werte außer Status passen aber. Nur werden anscheinend halt bei Weitem nicht alle spezifizierten Register auch ausgelesen.
Der Rest ist auf Standard: Slave als Modbus, port 502, Zähleradresse 200, Steuerung über Modbus aktiviert, Steuerung einschränken deaktiviert
Titel: Aw: Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: Syon am 09 August 2023, 14:35:21
Ich habe die Konfiguration bei mir versucht einzubauen.
Es werden auch alle Werte gelesen, allerdings kann ich keine Werte übergeben.
BatConfigMaxEnabled stellt sich sofort wieder auf none (0).
Die Werte, die ich bei BatConfigMaxChargeWatt und BatConfigMaxDischargeWatt eintrage bleiben zwar erhalten, doch ändern die nichts am WR. Mögt ihr nochmal eure funktionierenden Konfigurationen posten? Gerne auch komplett, da ich ja auch noch eine Anzeige etc. brauche.  :-[
Vielen Dank im Voraus...
Titel: Aw: Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: stefanru am 10 August 2023, 00:18:02
Hi ich kann dir hier die Modbus Steuerung für die BYD einstellen.
Dort kann ich die Werte alle setzen.
Hast du denn das schreiben zugelassen?

Internals:
   DEF        1 60 192.168.69.72:502 TCP
   DeviceName 192.168.69.72:502
   EXPECT     idle
   FD         4
   FUUID      644f7a50-f33f-a171-5585-61f73af85b552363
   IODev      BYD_Runge
   Interval   60
   LASTOPEN   1691244381.02036
   MODBUSID   1
   MODE       master
   MODULEVERSION Modbus 4.5.5 - 9.5.2023
   NAME       BYD_Runge
   NOTIFYDEV  global
   NR         2391
   NTFY_ORDER 50-BYD_Runge
   PARTIAL   
   PROTOCOL   TCP
   STATE      Status: discharging <br/>
Ladung: 68.4 % <br/>
Max Charge: 10240.0 W <br/>
Config Max: none<br/>
   TCPConn    1
   TYPE       ModbusAttr
   devioLoglevel 3
   eventCount 11594
   nextOpenDelay 60
   DICACHE:
     3:
       UNPACK     
       EXPRS:
       EXTRAS:
       FNAMES:
     6:
       UNPACK     
       EXPRS:
       EXTRAS:
       FNAMES:
   PICACHE:
     h40073:
       bswapRegs 
       decode     
       encode     
       expr       
       format     %.1f
       ignoreExpr
       map       
       mapDefault
       revRegs   
       rmapDefault
     h40075:
       bswapRegs 
       decode     
       encode     
       expr       
       format     %.1f
       ignoreExpr
       map       
       mapDefault
       revRegs   
       rmapDefault
     h40077:
       bswapRegs 
       decode     
       encode     
       expr       
       format     %.1f
       ignoreExpr
       map       
       mapDefault
       revRegs   
       rmapDefault
     h40085:
       bswapRegs 
       decode     
       encode     
       expr       
       format     %.1f
       ignoreExpr
       map       
       mapDefault
       revRegs   
       rmapDefault
     h40087:
       bswapRegs 
       decode     
       encode     
       expr       
       format     %.1f
       ignoreExpr
       map       
       mapDefault
       revRegs   
       rmapDefault
     h40089:
       bswapRegs 
       decode     
       encode     
       expr       
       format     %.1f
       ignoreExpr
       map       
       mapDefault
       revRegs   
       rmapDefault
     h40091:
       bswapRegs 
       decode     
       encode     
       expr       
       format     %.0f
       ignoreExpr
       map       
       mapDefault
       revRegs   
       rmapDefault
     h40093:
       bswapRegs 
       decode     
       encode     
       expr       
       format     %.1f
       ignoreExpr
       map       
       mapDefault
       revRegs   
       rmapDefault
     h40109:
       bswapRegs 
       decode     
       encode     
       expr       
       format     %.1f
       ignoreExpr
       map       
       mapDefault
       revRegs   
       rmapDefault
     h40117:
       bswapRegs 
       decode     
       encode     
       expr       
       format     %s
       ignoreExpr
       map        1:off,2:sleeping,3:starting,4:active,5:throttled,6:shutdown,7:fault,8:standby
       mapDefault
       revRegs   
       rmapDefault
     h40196:
       bswapRegs 
       decode     
       encode     
       expr       $val / 1000
       format     %.2f
       ignoreExpr
       map       
       mapDefault
       revRegs   
       rmapDefault
     h40267:
       bswapRegs 
       decode     
       encode     
       expr       
       format     %d
       ignoreExpr
       map       
       mapDefault
       revRegs   
       rmapDefault
     h40284:
       bswapRegs 
       decode     
       encode     
       expr       $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
       format     %.1f
       ignoreExpr
       map       
       mapDefault
       revRegs   
       rmapDefault
     h40304:
       bswapRegs 
       decode     
       encode     
       expr       $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
       format     %.1f
       ignoreExpr
       map       
       mapDefault
       revRegs   
       rmapDefault
     h40324:
       bswapRegs 
       decode     
       encode     
       expr       $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
       format     %.1f
       ignoreExpr
       map       
       mapDefault
       revRegs   
       rmapDefault
     h40344:
       bswapRegs 
       decode     
       encode     
       expr       $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
       format     %.1f
       ignoreExpr
       map       
       mapDefault
       revRegs   
       rmapDefault
     h40355:
       bswapRegs 
       decode     
       encode     
       expr       
       format     %.1f
       ignoreExpr
       map       
       mapDefault
       revRegs   
       rmapDefault
     h40358:
       bswapRegs 
       decode     
       encode     
       expr       
       format     %s
       ignoreExpr
       map        0:none,1:chargeMax,2:dischrMax,3:bothMax
       mapDefault
       revRegs   
       rmapDefault
     h40360:
       bswapRegs 
       decode     
       encode     
       expr       $val / 100
       format     %.1f
       ignoreExpr
       map       
       mapDefault
       revRegs   
       rmapDefault
     h40361:
       bswapRegs 
       decode     
       encode     
       expr       $val / 100
       format     %.1f
       ignoreExpr
       map       
       mapDefault
       revRegs   
       rmapDefault
     h40364:
       bswapRegs 
       decode     
       encode     
       expr       
       format     %s
       ignoreExpr
       map        1:off,2:empty,3:discharging,4:charging,5:full,6:holding,7:testing
       mapDefault
       revRegs   
       rmapDefault
     h40365:
       bswapRegs 
       decode     
       encode     
       expr       $val / 10000 * ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
       format     %.1f
       ignoreExpr
       map       
       mapDefault
       revRegs   
       rmapDefault
     h40366:
       bswapRegs 
       decode     
       encode     
       expr       $val / 10000 * ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
       format     %.1f
       ignoreExpr
       map       
       mapDefault
       revRegs   
       rmapDefault
   QUEUE:
   READ:
     BUFFER     
   READINGS:
     2023-08-10 00:06:38   ACActEnergy     4835.53
     2023-08-10 00:06:37   ACCurrentPhaseA 0.9
     2023-08-10 00:06:37   ACCurrentPhaseB 0.9
     2023-08-10 00:06:37   ACCurrentPhaseC 0.9
     2023-08-10 00:06:37   ACFrequency     49.9
     2023-08-10 00:06:37   ACPower         633
     2023-08-10 00:06:37   ACVoltagePhaseA 231.5
     2023-08-10 00:06:37   ACVoltagePhaseB 233.3
     2023-08-10 00:06:37   ACVoltagePhaseC 231.8
     2023-08-10 00:06:38   BatConfigMaxChargeWatt 10240.0
     2023-08-10 00:06:38   BatConfigMaxDischargeWatt 10240.0
     2023-08-10 00:06:38   BatConfigMaxEnabled none
     2023-08-10 00:06:38   BatConfigMaxReferenceWatt 10240.0
     2023-08-10 00:06:38   BatConfigReserve 5.0
     2023-08-10 00:06:38   BatteryChargePercent 68.4
     2023-08-10 00:06:38   BatteryChargeWatt 0.0
     2023-08-10 00:06:38   BatteryDischargeWatt 674.9
     2023-08-10 00:06:38   BatteryState    discharging
     2023-08-10 00:06:37   CabinetTemperature 50.8
     2023-08-10 00:06:38   DCPowerMPPT1    1.7
     2023-08-10 00:06:38   DCPowerMPPT2    6553.5
     2023-08-10 00:06:38   DCPowerScale    -1
     2023-06-07 12:06:06   OwnBatConfigMaxChargeProz HASH(0x5572a9bee8)
     2023-08-10 00:06:38   PVConsumedEnergy 4835.53
     2023-08-05 16:06:37   state           opened
     2023-08-10 00:06:37   status          active
   REMEMBER:
     lid        1
     lname      BYD_Runge
     lrecv      1691618798.47814
     lsend      1691618798.43205
   UPDATECACHE:
     g1:
       adr        40267
       combine    g1 len 78 (h40267 len 1 DCPowerScale and h40284 len 1 DCPowerMPPT1 and h40304 len 1 DCPowerMPPT2 and h40324 len 1 BatteryChargeWatt and h40344 len 1 BatteryDischargeWatt) with h40355 len 1 BatConfigMaxReferenceWatt and h40358 len 1 BatConfigMaxEnabled and h40360 len 1 BatConfigReserve and h40361 len 1 BatteryChargePercent and h40364 len 1 BatteryState and h40365 len 1 BatConfigMaxDischargeWatt and h40366 len 1 BatConfigMaxChargeWatt
       group      1-1
       groupInfo  h40267 len 1 DCPowerScale and h40284 len 1 DCPowerMPPT1 and h40304 len 1 DCPowerMPPT2 and h40324 len 1 BatteryChargeWatt and h40344 len 1 BatteryDischargeWatt
       len        78
       objCombi   g1
       reading    DCPowerScale
       span       100
       type       h
     h40073:
       adr        40073
       combine    h40073 len 2 ACCurrentPhaseA with h40075 len 2 ACCurrentPhaseB and h40077 len 2 ACCurrentPhaseC and h40085 len 2 ACVoltagePhaseA and h40087 len 2 ACVoltagePhaseB and h40089 len 2 ACVoltagePhaseC and h40091 len 2 ACPower and h40093 len 2 ACFrequency and h40109 len 2 CabinetTemperature and h40117 len 1 status
       len        2
       objCombi   h40073
       reading    ACCurrentPhaseA
       span       45
       type       h
     h40196:
       adr        40196
       len        4
       objCombi   h40196
       reading    ACActEnergy
       span       4
       type       h
   defptr:
     BYD_Runge  1
   gotReadings:
     BatConfigMaxChargeWatt 10240.0
     BatConfigMaxDischargeWatt 10240.0
     BatConfigMaxEnabled none
     BatConfigMaxReferenceWatt 10240.0
     BatConfigReserve 5.0
     BatteryChargePercent 68.4
     BatteryChargeWatt 0.0
     BatteryDischargeWatt 674.9
     BatteryState discharging
     DCPowerMPPT1 1.7
     DCPowerMPPT2 6553.5
     DCPowerScale -1
   lastRead:
     h40073     1691618797.68964
     h40075     1691618797.69063
     h40077     1691618797.69151
     h40085     1691618797.69237
     h40087     1691618797.69322
     h40089     1691618797.6941
     h40091     1691618797.69511
     h40093     1691618797.69605
     h40109     1691618797.69686
     h40117     1691618797.69789
     h40196     1691618798.30657
     h40267     1691618798.48945
     h40284     1691618798.49069
     h40304     1691618798.49193
     h40324     1691618798.49306
     h40344     1691618798.4943
     h40355     1691618798.48261
     h40358     1691618798.48328
     h40360     1691618798.48428
     h40361     1691618798.48552
     h40364     1691618798.48646
     h40365     1691618798.48761
     h40366     1691618798.48865
Attributes:
   dev-h-combine 125
   dev-h-defFormat %.1f
   dev-h-defLen 2
   dev-h-defPoll 1
   dev-h-defUnpack f>
   devStateStyle style="text-align:right"
   event-min-interval ACActEnergy:7200,ACPower:7200,Battery.*:7200
   event-on-change-reading .*Energy:0.1,ACPower:1,DCPowerMPPT.*:1,status,Battery.*harge.*:1,BatteryState
   group      Fronius Modbus
   icon       measure_battery_100
   obj-h40073-reading ACCurrentPhaseA
   obj-h40075-reading ACCurrentPhaseB
   obj-h40077-reading ACCurrentPhaseC
   obj-h40085-reading ACVoltagePhaseA
   obj-h40087-reading ACVoltagePhaseB
   obj-h40089-reading ACVoltagePhaseC
   obj-h40091-format %.0f
   obj-h40091-reading ACPower
   obj-h40093-reading ACFrequency
   obj-h40109-reading CabinetTemperature
   obj-h40117-format %s
   obj-h40117-len 1
   obj-h40117-map 1:off,2:sleeping,3:starting,4:active,5:throttled,6:shutdown,7:fault,8:standby
   obj-h40117-reading status
   obj-h40117-unpack n
   obj-h40196-expr $val / 1000
   obj-h40196-format %.2f
   obj-h40196-len 4
   obj-h40196-reading ACActEnergy
   obj-h40196-unpack Q>
   obj-h40267-format %d
   obj-h40267-group 1-1
   obj-h40267-len 1
   obj-h40267-reading DCPowerScale
   obj-h40267-unpack s>
   obj-h40284-expr $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
   obj-h40284-group 1-2
   obj-h40284-len 1
   obj-h40284-reading DCPowerMPPT1
   obj-h40284-unpack n
   obj-h40304-expr $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
   obj-h40304-group 1-3
   obj-h40304-len 1
   obj-h40304-reading DCPowerMPPT2
   obj-h40304-unpack n
   obj-h40324-expr $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
   obj-h40324-group 1-4
   obj-h40324-len 1
   obj-h40324-reading BatteryChargeWatt
   obj-h40324-unpack n
   obj-h40344-expr $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
   obj-h40344-group 1-5
   obj-h40344-len 1
   obj-h40344-reading BatteryDischargeWatt
   obj-h40344-unpack n
   obj-h40355-len 1
   obj-h40355-reading BatConfigMaxReferenceWatt
   obj-h40355-unpack n
   obj-h40358-format %s
   obj-h40358-len 1
   obj-h40358-map 0:none,1:chargeMax,2:dischrMax,3:bothMax
   obj-h40358-reading BatConfigMaxEnabled
   obj-h40358-set 1
   obj-h40358-unpack n
   obj-h40360-expr $val / 100
   obj-h40360-len 1
   obj-h40360-reading BatConfigReserve
   obj-h40360-unpack n
   obj-h40361-expr $val / 100
   obj-h40361-len 1
   obj-h40361-reading BatteryChargePercent
   obj-h40361-unpack n
   obj-h40364-format %s
   obj-h40364-len 1
   obj-h40364-map 1:off,2:empty,3:discharging,4:charging,5:full,6:holding,7:testing
   obj-h40364-reading BatteryState
   obj-h40364-unpack n
   obj-h40365-expr $val / 10000 * ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
   obj-h40365-len 1
   obj-h40365-max ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
   obj-h40365-min -ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
   obj-h40365-reading BatConfigMaxDischargeWatt
   obj-h40365-set 1
   obj-h40365-setexpr $val / ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1) * 10000
   obj-h40365-unpack s>
   obj-h40366-expr $val / 10000 * ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
   obj-h40366-len 1
   obj-h40366-max ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
   obj-h40366-min -ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
   obj-h40366-reading BatConfigMaxChargeWatt
   obj-h40366-set 1
   obj-h40366-setexpr $val / ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1) * 10000
   obj-h40366-unpack s>
   room       Strom
   stateFormat Status: BatteryState <br/>
Ladung: BatteryChargePercent % <br/>
Max Charge: BatConfigMaxChargeWatt W <br/>
Config Max: BatConfigMaxEnabled<br/>
   userReadings PVConsumedEnergy { ReadingsVal($name,"ACActEnergy",0) - ReadingsVal("BYD_Runge_meter","EnergyExported",0) },
Titel: Aw: Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: Syon am 10 August 2023, 06:22:45
Ja, habe den Gen24, bis auf die Einschränkung, genau so konfiguriert.
In deinem Listing steht BatConfigMaxEnabled ebenfalls auf none.
Kannst du so die Einstellungen schreiben?

PS: Mein aktuelles Listing. Die Werte ziehe ich lieber über die Api.
define gen24 ModbusAttr 1 10 192.168.2.10:502 TCP
attr gen24 obj-h40109-format %.2f
attr gen24 obj-h40109-len 2
attr gen24 obj-h40109-poll 300
attr gen24 obj-h40109-reading Temperatur
attr gen24 obj-h40109-unpack f>
attr gen24 obj-h40235-expr $val/100
attr gen24 obj-h40235-poll 300
attr gen24 obj-h40235-reading Isolation
attr gen24 obj-h40325-expr $val/100000
attr gen24 obj-h40325-len 2
attr gen24 obj-h40325-min 1
attr gen24 obj-h40325-poll 300
attr gen24 obj-h40325-reading Summe_Ladung
attr gen24 obj-h40325-unpack N
attr gen24 obj-h40345-expr $val/100000
attr gen24 obj-h40345-len 2
attr gen24 obj-h40345-min 1
attr gen24 obj-h40345-poll 300
attr gen24 obj-h40345-reading Summe_Entladung
attr gen24 obj-h40345-unpack N
attr gen24 obj-h40355-poll 300
attr gen24 obj-h40355-reading BCD_ConfigMaxReferenceWatt
attr gen24 obj-h40358-format %s
attr gen24 obj-h40358-len 1
attr gen24 obj-h40358-map 0:none,1:chargeMax,2:dischrMax,3:bothMax
attr gen24 obj-h40358-poll 300
attr gen24 obj-h40358-reading BYD_max_Config
attr gen24 obj-h40358-set 1
attr gen24 obj-h40360-expr $val/100
attr gen24 obj-h40360-format %.2f
attr gen24 obj-h40360-max 100
attr gen24 obj-h40360-min 7
attr gen24 obj-h40360-poll 60
attr gen24 obj-h40360-reading BYD_min_SoC
attr gen24 obj-h40360-set 1
attr gen24 obj-h40360-setexpr $val * 100
attr gen24 obj-h40361-expr $val/100
attr gen24 obj-h40361-format %.2f
attr gen24 obj-h40361-poll 60
attr gen24 obj-h40361-reading BYD_SoC
attr gen24 obj-h40364-format %s
attr gen24 obj-h40364-len 1
attr gen24 obj-h40364-map 1:off,2:leer,3:entlade,4:lade,5:voll,6:standby,7:teste
attr gen24 obj-h40364-poll 2
attr gen24 obj-h40364-reading BYD_Status
attr gen24 obj-h40364-unpack n
attr gen24 obj-h40365-expr $val/100
attr gen24 obj-h40365-format %.2f
attr gen24 obj-h40365-max 100
attr gen24 obj-h40365-min 0
attr gen24 obj-h40365-poll 60
attr gen24 obj-h40365-reading BYD_max_entladen
attr gen24 obj-h40365-set 1
attr gen24 obj-h40365-setexpr $val * 100
attr gen24 obj-h40366-expr $val/100
attr gen24 obj-h40366-format %.2f
attr gen24 obj-h40366-max 100
attr gen24 obj-h40366-min 0
attr gen24 obj-h40366-poll 60
attr gen24 obj-h40366-reading BYD_max_laden
attr gen24 obj-h40366-set 1
attr gen24 obj-h40366-setexpr $val * 100
attr gen24 room Energie
attr gen24 stateFormat SoC:BYD_SoC | Reserve:BYD_min_SoC |\
Begrenzung Entl.:BYD_max_entladen | Lad.:BYD_max_laden
#   DEF        1 10 192.168.2.10:502 TCP
#   DeviceName 192.168.2.10:502
#   EXPECT     idle
#   FD         4
#   FUUID      64d4755e-f33f-9de3-1c09-a7c2e5a5300c130f
#   IODev      gen24
#   Interval   10
#   LASTOPEN   1691645278.39221
#   MODBUSID   1
#   MODE       master
#   MODULEVERSION Modbus 4.5.5 - 9.5.2023
#   NAME       gen24
#   NOTIFYDEV  global
#   NR         161
#   NTFY_ORDER 50-gen24
#   PARTIAL   
#   PROTOCOL   TCP
#   STATE      SoC:9.70 | Reserve:10.00 |
#Begrenzung Entl.:0.00 | Lad.:0.00
#   TCPConn    1
#   TYPE       ModbusAttr
#   devioLoglevel 3
#   eventCount 493
#   nextOpenDelay 60
#   DICACHE:
#     3:
#       UNPACK     
#       EXPRS:
#       EXTRAS:
#       FNAMES:
#     6:
#       UNPACK     
#       EXPRS:
#       EXTRAS:
#       FNAMES:
#   PICACHE:
#     h40109:
#       bswapRegs 
#       decode     
#       encode     
#       expr       
#       format     %.2f
#       ignoreExpr
#       map       
#       mapDefault
#       revRegs   
#       rmapDefault
#     h40235:
#       bswapRegs 
#       decode     
#       encode     
#       expr       $val/100
#       format     
#       ignoreExpr
#       map       
#       mapDefault
#       revRegs   
#       rmapDefault
#     h40325:
#       bswapRegs 
#       decode     
#       encode     
#       expr       $val/100000
#       format     
#       ignoreExpr
#       map       
#       mapDefault
#       revRegs   
#       rmapDefault
#     h40345:
#       bswapRegs 
#       decode     
#       encode     
#       expr       $val/100000
#       format     
#       ignoreExpr
#       map       
#       mapDefault
#       revRegs   
#       rmapDefault
#     h40355:
#       bswapRegs 
#       decode     
#       encode     
#       expr       
#       format     
#       ignoreExpr
#       map       
#       mapDefault
#       revRegs   
#       rmapDefault
#     h40358:
#       bswapRegs 
#       decode     
#       encode     
#       expr       
#       format     %s
#       ignoreExpr
#       map        0:none,1:chargeMax,2:dischrMax,3:bothMax
#       mapDefault
#       revRegs   
#       rmapDefault
#     h40360:
#       bswapRegs 
#       decode     
#       encode     
#       expr       $val/100
#       format     %.2f
#       ignoreExpr
#       map       
#       mapDefault
#       revRegs   
#       rmapDefault
#     h40361:
#       bswapRegs 
#       decode     
#       encode     
#       expr       $val/100
#       format     %.2f
#       ignoreExpr
#       map       
#       mapDefault
#       revRegs   
#       rmapDefault
#     h40364:
#       bswapRegs 
#       decode     
#       encode     
#       expr       
#       format     %s
#       ignoreExpr
#       map        1:off,2:leer,3:entlade,4:lade,5:voll,6:standby,7:teste
#       mapDefault
#       revRegs   
#       rmapDefault
#     h40365:
#       bswapRegs 
#       decode     
#       encode     
#       expr       $val/100
#       format     %.2f
#       ignoreExpr
#       map       
#       mapDefault
#       revRegs   
#       rmapDefault
#     h40366:
#       bswapRegs 
#       decode     
#       encode     
#       expr       $val/100
#       format     %.2f
#       ignoreExpr
#       map       
#       mapDefault
#       revRegs   
#       rmapDefault
#   QUEUE:
#   READ:
#     BUFFER     
#   READINGS:
#     2023-08-10 07:35:09   BCD_ConfigMaxReferenceWatt 10240
#     2023-08-10 07:35:09   BYD_SoC         9.70
#     2023-08-10 07:35:09   BYD_Status      standby
#     2023-08-10 07:35:09   BYD_max_Config  none
#     2023-08-10 07:35:09   BYD_max_entladen 0.00
#     2023-08-10 07:35:09   BYD_max_laden   0.00
#     2023-08-10 07:35:09   BYD_min_SoC     10.00
#     2023-08-10 07:35:08   Isolation       146.47
#     2023-08-10 07:35:09   Summe_Entladung 0
#     2023-08-10 07:35:08   Summe_Ladung    82.22552
#     2023-08-10 07:35:08   Temperatur      44.04
#     2023-08-10 07:27:58   state           opened
#   REMEMBER:
#     lid        1
#     lname      gen24
#     lrecv      1691645709.73716
#     lsend      1691645709.73615
#   UPDATECACHE:
#     h40109:
#       adr        40109
#       len        2
#       objCombi   h40109
#       reading    Temperatur
#       span       2
#       type       h
#     h40235:
#       adr        40235
#       len        1
#       objCombi   h40235
#       reading    Isolation
#       span       1
#       type       h
#     h40325:
#       adr        40325
#       len        2
#       objCombi   h40325
#       reading    Summe_Ladung
#       span       2
#       type       h
#     h40345:
#       adr        40345
#       len        2
#       objCombi   h40345
#       reading    Summe_Entladung
#       span       2
#       type       h
#     h40355:
#       adr        40355
#       len        1
#       objCombi   h40355
#       reading    BCD_ConfigMaxReferenceWatt
#       span       1
#       type       h
#     h40358:
#       adr        40358
#       len        1
#       objCombi   h40358
#       reading    BYD_max_Config
#       span       1
#       type       h
#     h40360:
#       adr        40360
#       len        1
#       objCombi   h40360
#       reading    BYD_min_SoC
#       span       1
#       type       h
#     h40361:
#       adr        40361
#       len        1
#       objCombi   h40361
#       reading    BYD_SoC
#       span       1
#       type       h
#     h40364:
#       adr        40364
#       len        1
#       objCombi   h40364
#       reading    BYD_Status
#       span       1
#       type       h
#     h40365:
#       adr        40365
#       len        1
#       objCombi   h40365
#       reading    BYD_max_entladen
#       span       1
#       type       h
#     h40366:
#       adr        40366
#       len        1
#       objCombi   h40366
#       reading    BYD_max_laden
#       span       1
#       type       h
#   defptr:
#     gen24      1
#   gotReadings:
#     BYD_max_laden 0.00
#   lastRead:
#     h40109     1691645708.6939
#     h40235     1691645708.7986
#     h40325     1691645708.9032
#     h40345     1691645709.00781
#     h40355     1691645709.11205
#     h40358     1691645709.21635
#     h40360     1691645709.32081
#     h40361     1691645709.427
#     h40364     1691645709.53056
#     h40365     1691645709.63522
#     h40366     1691645709.73886
#
setstate gen24 SoC:9.70 | Reserve:10.00 |\
Begrenzung Entl.:0.00 | Lad.:0.00
setstate gen24 2023-08-10 07:35:09 BCD_ConfigMaxReferenceWatt 10240
setstate gen24 2023-08-10 07:35:09 BYD_SoC 9.70
setstate gen24 2023-08-10 07:35:09 BYD_Status standby
setstate gen24 2023-08-10 07:35:09 BYD_max_Config none
setstate gen24 2023-08-10 07:35:09 BYD_max_entladen 0.00
setstate gen24 2023-08-10 07:35:09 BYD_max_laden 0.00
setstate gen24 2023-08-10 07:35:09 BYD_min_SoC 10.00
setstate gen24 2023-08-10 07:35:08 Isolation 146.47
setstate gen24 2023-08-10 07:35:09 Summe_Entladung 0
setstate gen24 2023-08-10 07:35:08 Summe_Ladung 82.22552
setstate gen24 2023-08-10 07:35:08 Temperatur 44.04
setstate gen24 2023-08-10 07:27:58 state opened

Titel: Aw: Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: yoda_gh am 10 August 2023, 08:25:11
Zitat von: Syon am 09 August 2023, 14:35:21Die Werte, die ich bei BatConfigMaxChargeWatt und BatConfigMaxDischargeWatt eintrage bleiben zwar erhalten, doch ändern die nichts am WR. Mögt ihr nochmal eure funktionierenden Konfigurationen posten? Gerne auch komplett, da ich ja auch noch eine Anzeige etc. brauche.  :-[

Wenn's hilft, gerne. :)

Ich habe noch eine Balkon-PV (MQTT2_Arbz_PV), daher gibt es einige etwas komplexere Berechnungen.

Ach so, und um eine gute Korrelation zwischen den beiden Modbus-Devices (Produktion Gen24 und Einspeisung beim Smartmeter) zu bekommen, damit ich den Eigenverbrauch besser berechnen kann, habe ich den Auto-Update bei den Modbus-Devices abgeschaltet und triggere beide stattdessen möglichst kurz hintereinander (atMeterRead).

define gen24 ModbusAttr 1 0 192.168.1.3:502 TCP
attr gen24 dev-h-combine 125
attr gen24 dev-h-defFormat %.1f
attr gen24 dev-h-defLen 2
attr gen24 dev-h-defPoll 1
attr gen24 dev-h-defUnpack f>
attr gen24 event-min-interval ACActEnergy:7200,ACPower:7200,Battery.*:7200
attr gen24 event-on-change-reading .*Energy:0.1,ACPower:1,DCPowerMPPT.*:1,status,Battery.*harge.*:1,BatteryState
attr gen24 obj-h40073-reading ACCurrentPhaseA
attr gen24 obj-h40075-reading ACCurrentPhaseB
attr gen24 obj-h40077-reading ACCurrentPhaseC
attr gen24 obj-h40085-reading ACVoltagePhaseA
attr gen24 obj-h40087-reading ACVoltagePhaseB
attr gen24 obj-h40089-reading ACVoltagePhaseC
attr gen24 obj-h40091-format %.0f
attr gen24 obj-h40091-reading ACPower
attr gen24 obj-h40093-reading ACFrequency
attr gen24 obj-h40109-reading CabinetTemperature
attr gen24 obj-h40117-format %s
attr gen24 obj-h40117-len 1
attr gen24 obj-h40117-map 1:off,2:sleeping,3:starting,4:active,5:throttled,6:shutdown,7:fault,8:standby
attr gen24 obj-h40117-reading status
attr gen24 obj-h40117-unpack n
attr gen24 obj-h40196-expr $val / 1000
attr gen24 obj-h40196-format %.2f
attr gen24 obj-h40196-len 4
attr gen24 obj-h40196-reading ACActEnergy
attr gen24 obj-h40196-unpack Q>
attr gen24 obj-h40267-format %d
attr gen24 obj-h40267-group 1-1
attr gen24 obj-h40267-len 1
attr gen24 obj-h40267-reading DCPowerScale
attr gen24 obj-h40267-unpack s>
attr gen24 obj-h40284-expr $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
attr gen24 obj-h40284-group 1-2
attr gen24 obj-h40284-len 1
attr gen24 obj-h40284-reading DCPowerMPPT1
attr gen24 obj-h40284-unpack n
attr gen24 obj-h40304-expr $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
attr gen24 obj-h40304-group 1-3
attr gen24 obj-h40304-len 1
attr gen24 obj-h40304-reading DCPowerMPPT2
attr gen24 obj-h40304-unpack n
attr gen24 obj-h40324-expr $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
attr gen24 obj-h40324-group 1-4
attr gen24 obj-h40324-len 1
attr gen24 obj-h40324-reading BatteryChargeWatt
attr gen24 obj-h40324-unpack n
attr gen24 obj-h40344-expr $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
attr gen24 obj-h40344-group 1-5
attr gen24 obj-h40344-len 1
attr gen24 obj-h40344-reading BatteryDischargeWatt
attr gen24 obj-h40344-unpack n
attr gen24 obj-h40355-len 1
attr gen24 obj-h40355-reading BatConfigMaxReferenceWatt
attr gen24 obj-h40355-unpack n
attr gen24 obj-h40358-format %s
attr gen24 obj-h40358-len 1
attr gen24 obj-h40358-map 0:none,1:chargeMax,2:dischrMax,3:bothMax
attr gen24 obj-h40358-reading BatConfigMaxEnabled
attr gen24 obj-h40358-set 1
attr gen24 obj-h40358-unpack n
attr gen24 obj-h40360-expr $val / 100
attr gen24 obj-h40360-len 1
attr gen24 obj-h40360-reading BatConfigReserve
attr gen24 obj-h40360-unpack n
attr gen24 obj-h40361-expr $val / 100
attr gen24 obj-h40361-len 1
attr gen24 obj-h40361-reading BatteryChargePercent
attr gen24 obj-h40361-unpack n
attr gen24 obj-h40364-format %s
attr gen24 obj-h40364-len 1
attr gen24 obj-h40364-map 1:off,2:empty,3:discharging,4:charging,5:full,6:holding,7:testing
attr gen24 obj-h40364-reading BatteryState
attr gen24 obj-h40364-unpack n
attr gen24 obj-h40365-expr $val / 10000 * ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40365-len 1
attr gen24 obj-h40365-max ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40365-min -ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40365-reading BatConfigMaxDischargeWatt
attr gen24 obj-h40365-set 1
attr gen24 obj-h40365-setexpr $val / ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1) * 10000
attr gen24 obj-h40365-unpack s>
attr gen24 obj-h40366-expr $val / 10000 * ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40366-len 1
attr gen24 obj-h40366-max ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40366-min -ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40366-reading BatConfigMaxChargeWatt
attr gen24 obj-h40366-set 1
attr gen24 obj-h40366-setexpr $val / ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1) * 10000
attr gen24 obj-h40366-unpack s>
attr gen24 room Solar
attr gen24 stateFormat status BatteryState ACPower W
attr gen24 userReadings PVSumEnergy { ReadingsVal($name,"ACActEnergy",0) + ReadingsVal("MQTT2_Arbz_PV","energy",0) },\
PVConsumedEnergy { ReadingsVal($name,"ACActEnergy",0) + ReadingsVal("MQTT2_Arbz_PV","energy",0) - ReadingsVal("gen24_meter","EnergyExported",0) }\

attr SVG_solarPV room Solar
define gen24_meter ModbusAttr 200 0 192.168.1.3:502 TCP
attr gen24_meter dev-h-combine 125
attr gen24_meter dev-h-defFormat %.1f
attr gen24_meter dev-h-defLen 2
attr gen24_meter dev-h-defPoll 1
attr gen24_meter dev-h-defUnpack f>
attr gen24_meter event-min-interval Power[ABC].*:7200,Energy.*:7200
attr gen24_meter event-on-change-reading Power[ABC].*:1,Energy.*:0.1
attr gen24_meter obj-h40081-reading VoltageA
attr gen24_meter obj-h40083-reading VoltageB
attr gen24_meter obj-h40085-reading VoltageC
attr gen24_meter obj-h40095-reading Frequency
attr gen24_meter obj-h40097-reading Power
attr gen24_meter obj-h40099-reading PowerA
attr gen24_meter obj-h40101-reading PowerB
attr gen24_meter obj-h40103-reading PowerC
attr gen24_meter obj-h40123-reading PfA
attr gen24_meter obj-h40125-reading PfB
attr gen24_meter obj-h40127-reading PfC
attr gen24_meter obj-h40129-expr $val / 1000
attr gen24_meter obj-h40129-reading EnergyExported
attr gen24_meter obj-h40137-expr $val / 1000
attr gen24_meter obj-h40137-reading EnergyImported
attr gen24_meter room Zähler
attr gen24_meter stateFormat PA: PowerA PB: PowerB PC: PowerC
attr gen24_meter userReadings PowerA_oPV {\
  ReadingsVal($name,"PowerA",0) \
  + ReadingsVal("gen24","ACPower",0)/3 \
  + (ReadingsAge("MQTT2_Arbz_PV", "power", 6000) < 600 ? ReadingsVal("MQTT2_Arbz_PV","power",0) : 0) },\
PowerB_oPV {\
  ReadingsVal($name,"PowerB",0)\
  + ReadingsVal("gen24","ACPower",0)/3 },\
PowerC_oPV {\
  ReadingsVal($name,"PowerC",0) + ReadingsVal("gen24","ACPower",0)/3 },\
ZaehlerStadtwerkeExported {\
  ReadingsVal($name,"EnergyExported",0) - 56.1 },\
ZaehlerStadtwerkeImported {\
  ReadingsVal($name,"EnergyImported",0) - 6.71 }
define stromCalcEinspeisung ElectricityCalculator gen24_meter:EnergyExported.*
attr stromCalcEinspeisung BasicPricePerAnnum 0
attr stromCalcEinspeisung Currency &#8364;;
attr stromCalcEinspeisung DecimalPlace 3
attr stromCalcEinspeisung ElectricityCounterOffset 0
attr stromCalcEinspeisung ElectricityKwhPerCounts 1
attr stromCalcEinspeisung ElectricityPricePerKWh 0.0781
attr stromCalcEinspeisung MonthOfAnnualReading 1
attr stromCalcEinspeisung MonthlyPayment 0
attr stromCalcEinspeisung ReadingDestination CalculatorDevice
attr stromCalcEinspeisung SiPrefixPower W
attr stromCalcEinspeisung event-on-change-reading gen24_meter_EnergyExported_EnergyCostDay
attr stromCalcEinspeisung room Solar,Zähler
attr stromCalcEinspeisung stateFormat {sprintf("Heute: %.1f kWh / %.2f € Monat: %.0f kWh / %.2f € ", \
ReadingsVal($name,"gen24_meter_EnergyExported_EnergyDay",0), \
ReadingsVal($name,"gen24_meter_EnergyExported_EnergyCostDay",0), \
ReadingsVal($name,"gen24_meter_EnergyExported_EnergyMonth",0), \
ReadingsVal($name,"gen24_meter_EnergyExported_EnergyCostMonth",0))}
define stromCalcBezug ElectricityCalculator gen24_meter:EnergyImported.*
attr stromCalcBezug BasicPricePerAnnum 166.8
attr stromCalcBezug Currency &#8364;;
attr stromCalcBezug DecimalPlace 3
attr stromCalcBezug ElectricityCounterOffset 0
attr stromCalcBezug ElectricityKwhPerCounts 1
attr stromCalcBezug ElectricityPricePerKWh 0.409
attr stromCalcBezug MonthOfAnnualReading 1
attr stromCalcBezug MonthlyPayment 80
attr stromCalcBezug ReadingDestination CalculatorDevice
attr stromCalcBezug SiPrefixPower W
attr stromCalcBezug event-on-change-reading gen24_meter_EnergyImported_EnergyCostDay
attr stromCalcBezug room Zähler
attr stromCalcBezug stateFormat {sprintf("Heute: %.1f kWh / %.2f € Monat: %.0f kWh / %.2f € ", \
ReadingsVal($name,"gen24_meter_EnergyImported_EnergyDay",0), \
ReadingsVal($name,"gen24_meter_EnergyImported_EnergyCostDay",0), \
ReadingsVal($name,"gen24_meter_EnergyImported_EnergyMonth",0), \
ReadingsVal($name,"gen24_meter_EnergyImported_EnergyCostMonth",0))}
define solarCalcVerbrauch ElectricityCalculator gen24:PVConsumedEnergy.*
attr solarCalcVerbrauch BasicPricePerAnnum 0
attr solarCalcVerbrauch Currency &#8364;;
attr solarCalcVerbrauch DecimalPlace 3
attr solarCalcVerbrauch ElectricityCounterOffset 0
attr solarCalcVerbrauch ElectricityKwhPerCounts 1
attr solarCalcVerbrauch ElectricityPricePerKWh 0.1161
attr solarCalcVerbrauch MonthOfAnnualReading 1
attr solarCalcVerbrauch MonthlyPayment 0
attr solarCalcVerbrauch ReadingDestination CalculatorDevice
attr solarCalcVerbrauch SiPrefixPower W
attr solarCalcVerbrauch event-on-change-reading gen24_PVSumEnergy_EnergyDay
attr solarCalcVerbrauch room Solar,Zähler
attr solarCalcVerbrauch stateFormat {sprintf("Heute: %.1f kWh / %.2f € Monat: %.0f kWh / %.2f € ",\
ReadingsVal($name,"gen24_PVConsumedEnergy_EnergyDay",0),\
ReadingsVal($name,"gen24_PVConsumedEnergy_EnergyCostDay",0),\
ReadingsVal($name,"gen24_PVConsumedEnergy_EnergyMonth",0),\
ReadingsVal($name,"gen24_PVConsumedEnergy_EnergyCostMonth",0))}
define atMeterRead at +*00:02:00 set gen24 reread ;; sleep 5;; set gen24_meter reread
attr atMeterRead room Zähler
define gen24_bat_morgens at *05:10\
{\
  if (ReadingsVal("dwd","globalstrhlg_11bis15",0) > 350)\
  {\
    fhem("set gen24 BatConfigMaxChargeWatt 200") \
  } else {\
    fhem("set gen24 BatConfigMaxChargeWatt 2000") \
  }\
}
attr gen24_bat_morgens room Solar
define gen24_bat_mittags at *11:05\
{\
  if (ReadingsVal("gen24","BatConfigMaxChargeWatt",0) < 1700)\
  {\
    fhem("set gen24 BatConfigMaxChargeWatt 1700") \
  }\
}
attr gen24_bat_mittags room Solar
define dwd DWD_OpenData
attr dwd forecastDays 0
attr dwd forecastProperties Td, TTT, FX1, Neff, RR1c, R110,R105,Rad1h,Sa3
attr dwd forecastResolution 1
attr dwd forecastStation K4503
attr dwd room Außen
attr dwd userReadings globalstrhlg_11bis15 { (ReadingsVal($name,"fc0_12_Rad1h",0) + ReadingsVal($name,"fc0_13_Rad1h",0) + ReadingsVal($name,"fc0_14_Rad1h",0) + ReadingsVal($name,"fc0_15_Rad1h",0)) / (4*3.6) }

Auch zu sehen ist, dass ich die Batterie-Ladung nach der vorhergesagten DWD-Globalstrahlung steuere, so dass ich möglichst den Mittags-Überschuss in die Batterie lade. Wenn was unklar ist oder fehlt, sag Bescheid. :)

So ist der Gen24 konfiguriert:

Titel: Aw: Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: Syon am 10 August 2023, 09:26:59
Vielen Dank, da werde ich mir beizeiten bestimmt viel raus klauen. ;)
Leider hat mich das mit meinem Problem nicht weiter gebracht.
Interessant ist, dass wenn ich auf der Seite des Gen24 das minimale Ladeimit einstelle, so sieht Fhem das sofort. Wenn ich das über Fhem einstelle, so setzt der WR das zwar sofort um, jedoch wird es in der Webansicht des WR nicht angezeigt.
Titel: Aw: Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: stefanru am 10 August 2023, 10:02:21
Hi Syon,

ja ich kann die Werte setzen.
Ich benutze es mit dem Forecast Modul um meine Batterie schonender zu laden.
Habe das gestern Abend gezogen da stand BatConfigMaxEnabled wieder auf none.
Jetzt hat er schon wieder runter geregelt.

Gruß,
Stefan
Titel: Aw: Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: yoda_gh am 10 August 2023, 10:16:06
Zitat von: Syon am 10 August 2023, 09:26:59Interessant ist, dass wenn ich auf der Seite des Gen24 das minimale Ladeimit einstelle, so sieht Fhem das sofort. Wenn ich das über Fhem einstelle, so setzt der WR das zwar sofort um, jedoch wird es in der Webansicht des WR nicht angezeigt.

Ich glaube, die Modbus-Einstellung gilt ergänzend zu der im Web. Das wird im Web nicht angezeigt. Versuch mal etwas einzustellen, was direkte Auswirkungen hat, z B. maximaler Ladestrom für die Batterie auf 200 W oder so, dann siehst du, ob es einen Effekt hat.
Titel: Aw: Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: Syon am 21 August 2023, 17:45:59
Jetzt klappt das. Danke. Problem war, dass der WR irgendwie queer war. Hatte einen Werksreset gemacht und nun nimmt er alle Werte.
Titel: Aw: Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: Zwiebel am 12 September 2023, 10:45:29
Hallo,

ich möchte herausbekommen wie viele Vollzyklen + Wirkungsrad meine Batterie macht.
Dazu sehe ich diese zwei Readings notwendig

attr gen24 obj-h40325-expr $val/1000000
attr gen24 obj-h40325-len 2
attr gen24 obj-h40325-min 1
attr gen24 obj-h40325-poll 300
attr gen24 obj-h40325-reading Summe_Ladung
attr gen24 obj-h40325-unpack N
attr gen24 obj-h40345-expr $val/1000000
attr gen24 obj-h40345-len 2
attr gen24 obj-h40345-min 1
attr gen24 obj-h40345-poll 300
attr gen24 obj-h40345-reading Summe_Entladung
attr gen24 obj-h40345-unpack N

     2023-09-12 10:30:01   Summe_Entladung 0.00
     2023-09-12 10:30:01   Summe_Ladung    511.53

Für Summe_Ladung bekomme ich Werte aber nicht für Summe_Entladung. Woran kann das liegen?
Titel: Aw: Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: Syon am 12 September 2023, 12:59:52
Jetzt wo du es sagst... Ist bei mit genau so.
Nutzt du ebenfalls Float?
Titel: Aw: Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: Zwiebel am 12 September 2023, 13:08:03
Ja ich verwende auch float.
Titel: Aw: Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: Zwiebel am 12 September 2023, 20:35:40
Das ist merkwürdiges Verhalten jetzt scheint keine Sonne und die Batterie wird entladen.
Dann ist es genau anders herum und Summe_Entladung ist gefüllt und Summe_Ladung ist leer.

     2023-09-12 20:26:36   Summe_Entladung 471.80
     2023-09-12 20:26:36   Summe_Ladung    0.00

sollte nicht das unten dieses verhalten verhindern?
attr gen24 obj-h40325-min 1
attr gen24 obj-h40345-min 1
Titel: Aw: Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: Syon am 12 September 2023, 20:47:41
Ist hier ebenfalls genau so.
Wenn ich den SoC jetzt hoch stelle und die Batterie lade ändert sich das wieder zurück.
Interessant.
Titel: Aw: Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: Zwiebel am 13 September 2023, 09:04:06
Jetzt habe ich eine Lösung gefunden. Wenn mit ignoreExpr alle Werte unter 100 nicht in ein Reading geschrieben werden dann bleiben beide Werte erhalten.

attr gen24 obj-h40325-ignoreExpr $val < 100
attr gen24 obj-h40345-ignoreExpr $val < 100

Das hier ist nicht notwendig.
attr gen24 obj-h40325-min 1
attr gen24 obj-h40345-min 1

Titel: Aw: Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: Syon am 13 September 2023, 13:15:24
Oh cool. Danke
Titel: Aw: Fronius Gen24 Speichersteuerung per Modbus
Beitrag von: Zwiebel am 19 September 2023, 10:55:17

Damit liefert Isolation auch brauchbare Werte in KOhm.

deleteattr gen24 obj-h40235-expr
attr gen24 obj-h40235-unpack n
attr gen24 obj-h40235-format %d