Fronius SYMO Hybrid mit Batteriespeicher

Netzparallel Solar Strom Speicher für Photovoltaik

Moderator: Mod-Team

 

0.00 (0 Bewertungen)

Fronius SYMO Hybrid mit Batteriespeicher

Beitragvon katzeintouch » 04.08.2016, 07:02

Guten Morgen an das Forum,

ich betreibe seit Juli 2016 einen Fronius WR SYMO Hybrid mit Batteriespeicher.
Die Haussteuerung habe ich mit Simaticsteuerungen realisiert.

Das Ziel ist den Eigenverbrauch zu maximieren.
Dazu habe ich 900l Pufferspeicher, die mit Heizpatronen ausgerüstet sind.
Der Speicher wird über Solarthermie und über Luft/ Sole Wasserpumpe geladen.
Die Heizpatronen sollen die Energie aufnehmen, die sonst ins Netz geliefert werden.
Die Daten des Fronius Smart Zählers habe ich über den WR per Modbus over TCP in die SPS eingelesen.
Nun fehlt aber der SOC der Batterie.
Fronuis antwortet nicht auf Mailanfragen. Mein Solateur kann mir nicht helfen.
Hat jemand die Modbus ID des Batterie Controllers und die Adresse im Modbus Telegramm, in dem der SOC auslesbar ist.

Mit sonnigen Grüssen

Uwe
katzeintouch
Neu hier
Neu hier
 
- Threadstarter -
 
Beiträge: 9
Registriert: 16.07.2016, 13:18
PV-Anlage [kWp]: 4,8
Speicher [kWh]: 9,6
Info: Betreiber

Re: Fronius SYMO Hybrid mit Batteriespeicher

Beitragvon katzeintouch » 05.08.2016, 11:19

Hallo an die Sonnenfreunde,

meine Nachfrage bei Fronius ergab, das die Daten per Modbus nicht oder noch nicht zur Verfügung stehen. Per JSON ist Alles verfügbar, das können aber die Steuerungen und ich nicht.

mit sonnigen Grüssen

Uwe
katzeintouch
Neu hier
Neu hier
 
- Threadstarter -
 
Beiträge: 9
Registriert: 16.07.2016, 13:18
PV-Anlage [kWp]: 4,8
Speicher [kWh]: 9,6
Info: Betreiber

Re: Fronius SYMO Hybrid mit Batteriespeicher

Beitragvon katzeintouch » 25.10.2016, 12:24

Habe jetzt mittels Arduino den JSON Code aus dem Controller der Batterie ausgelesen und in einen Datenbaustein der Siemens S7 geschrieben. Dadurch habe ich den Ladezustand und die Batterietemperatur in meinem Leitsystem.

lg

Uwe
katzeintouch
Neu hier
Neu hier
 
- Threadstarter -
 
Beiträge: 9
Registriert: 16.07.2016, 13:18
PV-Anlage [kWp]: 4,8
Speicher [kWh]: 9,6
Info: Betreiber

Re: Fronius SYMO Hybrid mit Batteriespeicher

Beitragvon Peter aus dem Hotzenwald » 20.03.2017, 11:03

Es ist das Register 40313+9 mit Faktor 100.

40119 : WR: : Normalbetrieb
40325 : Akku: : WARTEN
40322 : AkkuStand: : 28%

Gruss
Peter
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.
Benutzeravatar
Peter aus dem Hotzenwald
Öfters hier
Öfters hier
 
Beiträge: 14
Registriert: 24.01.2017, 11:38
PV-Anlage [kWp]: 2.8
Speicher [kWh]: 6
Info: Betreiber

Re: Fronius SYMO Hybrid mit Batteriespeicher

Beitragvon katzeintouch » 20.03.2017, 15:19

Danke
das wäre über Modbus.
Was passiert, wenn die Batterie durch den WR abgeschaltet wird?
In der Json Datei ist dann NIchrs mehr.

Also teste ich den Modbus
katzeintouch
Neu hier
Neu hier
 
- Threadstarter -
 
Beiträge: 9
Registriert: 16.07.2016, 13:18
PV-Anlage [kWp]: 4,8
Speicher [kWh]: 9,6
Info: Betreiber

Re: Fronius SYMO Hybrid mit Batteriespeicher

Beitragvon katzeintouch » 20.03.2017, 15:39

Hast Du eine aktuelle Modbus Tabelle?
in meiner sind diese Daten nicht enthalten
katzeintouch
Neu hier
Neu hier
 
- Threadstarter -
 
Beiträge: 9
Registriert: 16.07.2016, 13:18
PV-Anlage [kWp]: 4,8
Speicher [kWh]: 9,6
Info: Betreiber

Re: Fronius SYMO Hybrid mit Batteriespeicher

Beitragvon rosch » 20.03.2017, 21:48

@Peter aus dem Hotzenwald
Eine aktuelle Liste mit den ModBus Registern würde mich auch sehr interessieren! :roll:

Ich kann einige Werte per LOXONE MiniServer korrekt auslesen, bei anderen bin ich mir aber
nicht sicher ob die stimmen, zB. kommt bei den Temperaturen nur Blödsinn raus.

Den Status lese ich zB über 40118 aus, lt. meiner Liste soll das mit dem Befehl "read holding register"
und Datentyp "16bit unsigned integer" funktionieren. Ich bekomme aber immer "4" (Normalbetrieb)
zurück. Ich bin daher nicht sicher ob das stimmt, hab noch nie einen anderen Wert gesehen.

Für die von dir angegebenen Register bekomme ich folgende Ergebnisse:
40119 --> 0
40325 --> 10000
40322 --> 65535
Erscheint also auch nicht sinnvoll, hast du noch mehr Informationen zur Abfrage,
zB. Datentyp, Bytereihenfolge, Registerreihenfolge,....

rosch
rosch
Stammmitglied
Stammmitglied
 
Beiträge: 130
Registriert: 25.01.2016, 09:45
PV-Anlage [kWp]: 5
Speicher [kWh]: 7,5
Info: Betreiber

Re: Fronius SYMO Hybrid mit Batteriespeicher

Beitragvon Peter aus dem Hotzenwald » 20.03.2017, 23:42

Hallo Rosch,
beachtest du, dass die Registernummer um 1 reduziert werden muss ?
Register 40119 musst du als 40119-1 abfragen.
Ich benutze das PDF 42,0410,2049 System monitoring 010-15022017 das du dir bei Fronius nach Anmeldung runterladen kannst.

Ich füge mal meinen Python-Code an:

Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Abfrage einiger Werte am Fronius-Datamanager
# Anzeige am i2c LCD Plate von Adafruit
# erstellt Peter Fuerle, Hotzenwald
# Stand 20.03.2017
# Modbus
from pymodbus.constants import Endian
from pymodbus.payload import BinaryPayloadDecoder
from pymodbus.client.sync import ModbusTcpClient as ModbusClient
from pymodbus.diag_message import *
from pymodbus.file_message import *
from pymodbus.other_message import *
from pymodbus.mei_message import *
# LCD
import Adafruit_CharLCD as LCD
# sonstiges
import time

# Stati als Klartext
iStatus=["ist aus","Auto-Shutdown","startet","Normalbetrieb","Leistungsred.","schaltet ab","Fehler !","Standby","kein SolarNet","Kommunikationsfehler","Überstrom am SolarNet Stecker","WR im Update", "AFCI-Event"]
ba_Stat=["AUS","LEER","ENTLADEN","AUFLADEN","VOLL","WARTEN","TEST"]



#---------------------------------------------------------------------------#
# initialize LCD
#---------------------------------------------------------------------------#
lcd = LCD.Adafruit_CharLCDPlate()
lcd.clear()
lcd.message("Abfrage Fronius\n")
lcd.message("ModBus TCP")

#---------------------------------------------------------------------------#
# configure the client logging
#---------------------------------------------------------------------------#
import logging
logging.basicConfig()
log = logging.getLogger()
log.setLevel(logging.ERROR)

#---------------------------------------------------------------------------#
# We are going to use a simple client to send our requests
#---------------------------------------------------------------------------#
ip='192.168.22.188'
client = ModbusClient(ip,port=502)
client.connect()

# Fronius Wechselrichter #00 ist Modbus Geräte-ID 100
# Fronius Wechselrichter #01 ist Modbus Geräte-ID 001
# Fronius Wechselrichter #02 ist Modbus Geräte-ID 002
# Fronius Smartmeter hat fixe Geräte-ID 240
# HINWEIS! Die ausgesendete Registeradresse ist also immer um 1 geringer als die eigentliche Registernummer.
## Ähnlich wie bei den Inverter Models gibt es auch hier zwei verschiedene SunSpec Models:
## das Meter Model mit Gleitkommadarstellung
## (Einstellung „float“; M211, M212 oder M213)
# Datentypen der Register "float32","uint64","uint16"
##    'string': decoder.decode_string(8),
##    'float': decoder.decode_32bit_float(),
##    '16uint': decoder.decode_16bit_uint(),
##    '8int': decoder.decode_8bit_int(),
##    'bits': decoder.decode_bits(),



print(" ModbusTCP Abfrage Fronius Geräte an " + ip)
print(" ")

#---------------------------------------------------------------------------#
# read register
#---------------------------------------------------------------------------#
# Hersteller
r2=client.read_holding_registers(40005-1,4,unit=1)
invBrand = BinaryPayloadDecoder.fromRegisters(r2.registers, endian=Endian.Big)
# Modell
r3=client.read_holding_registers(40021-1,4,unit=1)
invModel = BinaryPayloadDecoder.fromRegisters(r3.registers, endian=Endian.Big)
print(" Inverter: " + invBrand.decode_string(8)+ " Modell: " +  invModel.decode_string(8))
# Datamanager
swDM= client.read_holding_registers(40037-1,8,unit=1)
swDMdecode = BinaryPayloadDecoder.fromRegisters(swDM.registers, endian=Endian.Big)
print(" SW Versions: Datamanager " + swDMdecode.decode_string(16))
# Inverter
swInv= client.read_holding_registers(40045-1,8,unit=1)
swInvdecode = BinaryPayloadDecoder.fromRegisters(swInv.registers, endian=Endian.Big)
print(" SW Versions: Inverter " + swInvdecode.decode_string(16))

while 1:
    # SmartMeter
    value= client.read_holding_registers(40098-1,2,unit=240)
    smACPower = BinaryPayloadDecoder.fromRegisters(value.registers, endian=Endian.Big)
    ED = "ED:"+str(int(smACPower.decode_32bit_float()))+"W"

    # MPPT 1 and 2
    # sunssf scale factor -1 or -2
    value= client.read_holding_registers(40263+5-1,1,unit=1)
    sf = BinaryPayloadDecoder.fromRegisters(value.registers, endian=Endian.Big)
    DCW_SF = 10**sf.decode_16bit_int()
    #print DCW_SF

    value= client.read_holding_registers(40263+22-1,1,unit=1)
    mppt1DCW = BinaryPayloadDecoder.fromRegisters(value.registers, endian=Endian.Big)
    PV="PV:" + str(int(float(mppt1DCW.decode_16bit_uint()*DCW_SF)))+"W"

    value= client.read_holding_registers(40263+42-1,1,unit=1)
    mppt2DCW = BinaryPayloadDecoder.fromRegisters(value.registers, endian=Endian.Big)
    BA=" " + str(int(mppt2DCW.decode_16bit_uint()*DCW_SF))+"W"
   
    # Stati WR und Akku
    value= client.read_holding_registers(40119-1,1,unit=1)
    wrStat = BinaryPayloadDecoder.fromRegisters(value.registers, endian=Endian.Big)
    result = wrStat.decode_16bit_uint()
    wrStatus = "WR:"+iStatus[int(result)-1]

    value= client.read_holding_registers(40313+12-1,1,unit=1)
    baStat = BinaryPayloadDecoder.fromRegisters(value.registers, endian=Endian.Big)
    result = baStat.decode_16bit_int()
    baStatus = "BA:"+ba_Stat[int(result)-1]
    #print(result)

    value= client.read_holding_registers(40313+9-1,1,unit=1)
    baProz = BinaryPayloadDecoder.fromRegisters(value.registers, endian=Endian.Big)
    result = baProz.decode_16bit_uint()
    baStand = "Akku:"+str(int(result)/100)+"%"

    ##print("LCD-Ausgabe:")
    lcd.clear()
    lcd.message(wrStatus+"\n"+baStatus)
    time.sleep(1)
    lcd.clear()
    lcd.message(baStand+BA+"\n"+ED+" "+PV)
    time.sleep(4)

#---------------------------------------------------------------------------#
# close the client
#---------------------------------------------------------------------------#
client.close()
print('Done')
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.
Benutzeravatar
Peter aus dem Hotzenwald
Öfters hier
Öfters hier
 
Beiträge: 14
Registriert: 24.01.2017, 11:38
PV-Anlage [kWp]: 2.8
Speicher [kWh]: 6
Info: Betreiber

Re: Fronius SYMO Hybrid mit Batteriespeicher

Beitragvon Peter aus dem Hotzenwald » 20.03.2017, 23:49

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.
Benutzeravatar
Peter aus dem Hotzenwald
Öfters hier
Öfters hier
 
Beiträge: 14
Registriert: 24.01.2017, 11:38
PV-Anlage [kWp]: 2.8
Speicher [kWh]: 6
Info: Betreiber

Re: Fronius SYMO Hybrid mit Batteriespeicher

Beitragvon rosch » 21.03.2017, 00:49

@Peter aus dem Hotzenwald

Danke für den Link zum Dokument und deinen Python code, ich hatte eine alte Version.
Abfrage Batteriestatus und SOC funktioniert jetzt. :)
Bei den Temperaturen kommt aber nur "nac" oder ein unsinniger Wert,
diese Register sind wohl auf dem Hybrid WR (noch) nicht supported.

Interessant wäre auch noch der "Notstromstatus", das habe ich auch nirgends gefunden.

rosch
rosch
Stammmitglied
Stammmitglied
 
Beiträge: 130
Registriert: 25.01.2016, 09:45
PV-Anlage [kWp]: 5
Speicher [kWh]: 7,5
Info: Betreiber

Nächste

Zurück zu Speichersysteme OnGrid (Netzparallel)



Ähnliche Beiträge


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste