DataManager und Modbus Register mit Modbus TCP

  • Fronius Hybrid 5.0, SmartMeter, Batteriespeicher.
    Inverter: Fronius Modell: Symo Hyb
    SW Version: Datamanager 1.4.1-12
    SW Version: Inverter 0.3.12.4


    Beim Abfragen von Registern gemäß der ModBus Tabelle verzweifle ich. Prinzipiell kann ich es und auch die Angaben zum Inverter und die SW-Versionen kommen aus der ModBus Abfrage.
    Ich mach das in Python auf einem Raspberry und bekomme nur wenige Werte tatsächlich so wie ich es erwarte.
    Wahrscheinlich liegt mein Problem eher daran, dass ich die Namen der Register nicht verstehe.
    Register 40130 im MeterModel sollte "Total Watt-hours Exported" angeben. Da kommt auch was raus, hat aber nichts mit Gesamtleistung oder Gesamtbezug zu tun. Das prüfe ich quer mit der JSON Schnittstelle.
    Sogar in der Tabelle angegebene Werte wie 40313+8 "Setpoint for minimum reserve for storage as a percentage of the nominal maximum storage" wird mit 0 ausgegeben, Da habe ich als Notstromreserve 30% drinstehen und als absolutes Minimum 7% eingetragen. Die Abfrage ergibt 0.
    Register 40313+9 mit der Angabe wieviel sich gerade im Akku in % befindet stimmt wiederum.
    Die Temperaturen aus Register 40110 und 40112 sind immer 0.


    Ja, ich weiss, dass ich die Registernummer - 1 abfragen muss, ich weiss wie ich float32 und unit16 behandeln muss.


    Hat mir jemand einen Hinweis was mit "Total VA-hours Imported" und ähnliche Begriffe heissen ?
    Hat jemand dem Fronius Datamanager über Modbus TCP schon vernünftige Informationen rauslocken können ?

    17 * Solarwatt 36M XL glass West ausgerichtet als Regenschutzdach auf 1.000m Höhe
    Fronius Symo Hybrid 5.0
    Fronius Solar Batterie 6.0
    Fronius Smartmeter 63A
    Notstromfunktion tut seit July 2016 nicht.

  • Halle Peter,


    ich habe zwar einen normalen Fronius Symo mit Smartmeter.
    Aber auch sehr viel gekämpft ;-)


    Hast du die Doku mit den Register von Fronius heruntergeladen?


    Nun Temperature steht bei mir "Not supported" . Also kommt bei mir auch 0 raus.


    "Register 40130" hast du mit richtige Variablentype (Unit32) gearbeitet?



    gruß

  • eloboy ich mach das so:


    value= client.read_holding_registers(40130-1,2,unit=240)
    smTotWhexp = BinaryPayloadDecoder.fromRegisters(value.registers, endian=Endian.Big)
    print(" SmartMeter Total exp. " + str(round(smTotWhexp.decode_32bit_float()/1000))+"kW")

    der Typ sollte stimmen.

    17 * Solarwatt 36M XL glass West ausgerichtet als Regenschutzdach auf 1.000m Höhe
    Fronius Symo Hybrid 5.0
    Fronius Solar Batterie 6.0
    Fronius Smartmeter 63A
    Notstromfunktion tut seit July 2016 nicht.

  • Zitat von Juraj


    'Danke Juraj,
    ich habe jetzt mit dem Skalierungsfaktor gearbeitet. Allerdings war das egal, da sich die Zahlen schon in den ersten Stellen deutlich unterschieden haben. Da machte der Skalierungsfaktor kein Problem.


    Mein Problem besteht darin, dass ich die Register nicht zuordnen kann und dass ich nur gelegentlich Werte finde, die passen.
    Dabei halte ich mich an Datentypen. Wahrscheinlich muss ich mich in die Sunspec Modelle einlesen.


    Inzwischen bin ich soweit, dass ich auf dem Raspberry mit einem 2-Zeilen Display den Modus des Wechselrichters und der Batterie anzeigen kann, sowie den Bezug vom Energiedienst, den Ertrag der PV Anlage und wieviel Watt gerade in den Akku oder aus dem Akku kommen. Dazu noch den Ladestand des Akkus in %.


    Gerade beim Ertrag der PV oder dem Fluss zum/vom Akku ändert sich der Skalierungsfaktor ständig. Das habe ich jetzt im Griff.


    Den ganzen Aufwand mit der ModBus TCP Schnittstelle mache ich, weil ich da hoffe auch Werte setzen zu können, während die JSON API nur zum Lesen taugt.

    17 * Solarwatt 36M XL glass West ausgerichtet als Regenschutzdach auf 1.000m Höhe
    Fronius Symo Hybrid 5.0
    Fronius Solar Batterie 6.0
    Fronius Smartmeter 63A
    Notstromfunktion tut seit July 2016 nicht.

  • Peter, wie liest du die Batteriedaten? Welches Register für wieviel Watt gerade in den Akku oder aus dem Akku kommen?


    update: ich habe es gefunden :-)

    6,2 kWp; Fronius Symo Hybrid 4.0-3-S; Battery 5 x 1,2 kWh; Notstromfunktion; Arduino Verbrauchsregler
    (Bitte entschuldigen Sie mein manchmal schlechtes Deutsch, es ist 'google translated')

  • Inzwischen habe ich die ModbusTCP-Schnittstelle am Raspberry eingelesen.
    An einem Display lasse ich mir die Eckdaten anzeigen.
    [Blockierte Grafik: http://fuerles.de/images/it/PV/FroniusRPi-modbus.png]


    Hier mein Python Code:

    17 * Solarwatt 36M XL glass West ausgerichtet als Regenschutzdach auf 1.000m Höhe
    Fronius Symo Hybrid 5.0
    Fronius Solar Batterie 6.0
    Fronius Smartmeter 63A
    Notstromfunktion tut seit July 2016 nicht.

  • Hi,


    sehr coole Sache & danke für den Code 8)
    Hast Du auch schon versucht Werte zu schreiben?


    Gruß,
    MagicMight

    ________________________________________
    9,9 kWp @ Symo 10.0-3-M
    Symo Hybrid 5.0-3-S @ Energy Package 12kW
    Ausrichtung: DN: 28°, Süd

  • Ja schön Sache Peter. Weiter so!

    4,24 kWp @Fronius Energy Package 9kW - Ausrichtung: DN:25°, -30° SSO
    3,19 kWp @ Symo 3.7-3 - Ausrichtung: 90°, +60° SSW


    Panasonic G(H)eisha seit 08-2018

    ZOE Zen 22kwh 05-2019


    Commetering Zähler 05-2018

    Stromanbieter: aWATTar 01-2020


    Mitglied SFV

    Mitglied DGS


    Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's gemacht.