Serialbattery und DC Überschusseinspeisung

Hi!
Kämpfe seit Wochen damit, dass meine beiden Laderegler (Victron RS MPPT 450/100 gedrosselt werden, sobald meine Batterien voll werden.

Ich vermute, nach zahlreichen Einstellungsänderungen und Versuchen, dass meine Serialbattery config.default.ini das Problem ist. Könnte mir bitte jemand, bei dem die Dc-gekoppelte Pv-Überschusseinspeisung aktiviert ist und auch funktioniert, seine config für Serialbattery posten?

Wahrscheinlich bin ich einfach zu blöd dafür :frowning:

Danke!!

Rahmendaten:

48V System

3x Victron Multiplus 5000

Venus OS (Raspi 4)
2x Fronius, 3x Hoymiles + 2x Victron MPPT 450/100

4 EVE 280 - Batteriebänke mit je einem JK BMS

ist den im ESS unter Netzwerkeinspeisung das DC-gekoppelte PV-Überschusseinspeisung aktiv?

@brezel Ja AC und DC Einspeisung sind aktiviert. DVCC ebenso!

Was für eine Version hat den dein VenusOS? Ich meine mich zu erinnern das die DC-gekoppelte PV-Überschusseinspeisung bei mir erst ab der Version 3.13 funktioniert hat. Im DVCC habe ich nur das DVCC aktiviert und ein Steuerndes BMS ausgewählt, alles andere ist deaktiviert, wird ja über Serialbattery eingestellt.

@brezel Das Problem habe ich seit der Erstinstallation damals noch unter Venus OS 2.9
Aktuell bin ich auf 3.20 (Beta)
Ich bin mir sicher, es ist irgend ein kleiner Fehler bzw Fehlkonfiguration meinerseits. Aber trotz unzähligen Stunden der Recherche und 2x Neuinstallation bekomme ich es nicht gelöst :frowning:
Sobald der Akku "voll" ist geht mindestens ein MPPT/String auf 0 Watt oder sogar beide :frowning:

--- gelöscht ---

Hier ist meine config.ini Datei.

MPPTs sind an DC, Die Einspeisung aktiviert. 3 Multiplus II 3 Phasen. 2 Batterienpacks JK/BMS

Bis auf UTILIZE_SOC_OF_DBUS_SERVICE = com.victronenergy.battery.ttyS5 passt die config Datei für aktuelle dev Version.

Die SOC Angaben der beiden BMS sind m.e. nicht verlässlich daher an der Stelle wird bei mir SOC- Wert aus dem Smartshunt vervendet. (Das ist eine andere ganz spannende Geschichte)

Bei mehreren Packs bitte sicherstellen, dass "SmartShunt" im ggf. als excludedServices eingetragen ist.

root@einstein:/data/BatteryAggregator# cat /data/setupOptions/BatteryAggregator/config.json
{
"excludedServices": ["com.victronenergy.battery.ttyS5"]
}

Für Diagnose ob Absorption Modus eintritt wird bietet sich im Shell dbus-spy utility.

root@einstein:/data/etc/dbus-serialbattery# dbus-spy
[DEFAULT]
; --------- Battery Current limits ---------
MAX_BATTERY_CHARGE_CURRENT    = 100.0
MAX_BATTERY_DISCHARGE_CURRENT = 100.0
; --------- Cell Voltages ---------
; Description: Cell min/max voltages which are used to calculate the min/max battery voltage
; Example: 16 cells * 3.45V/cell = 55.2V max charge voltage. 16 cells * 2.90V = 46.4V min discharge voltage
MIN_CELL_VOLTAGE   = 2.900
; Max voltage can seen as absorption voltage
;MAX_CELL_VOLTAGE   = 3.45625
MAX_CELL_VOLTAGE   = 3.45
FLOAT_CELL_VOLTAGE = 3.425
;FLOAT_CELL_VOLTAGE = 3.382
TIME_TO_GO_ENABLE = False
; --------- Charge Voltage limitation (affecting CVL) ---------
; Description: Limit max charging voltage (MAX_CELL_VOLTAGE * cell count), switch from max voltage to float
;              voltage (FLOAT_CELL_VOLTAGE * cell count) and back
;     False: Max charging voltage is always kept
;     True: Max charging voltage is reduced based on charge mode
;         Step mode: After max voltage is reached for MAX_VOLTAGE_TIME_SEC it switches to float voltage. After
;                    SoC is below SOC_LEVEL_TO_RESET_VOLTAGE_LIMIT it switches back to max voltage.
;         Linear mode: After max voltage is reachend and cell voltage difference is smaller or equal to
;                      CELL_VOLTAGE_DIFF_KEEP_MAX_VOLTAGE_UNTIL it switches to float voltage after 300 (fixed)
;                      additional seconds. After cell voltage difference is greater or equal to
;                      CELL_VOLTAGE_DIFF_TO_RESET_VOLTAGE_LIMIT it switches back to max voltage.
; Example: The battery reached max voltage of 55.2V and hold it for 900 seconds, the the CVL is switched to
;          float voltage of 53.6V to don't stress the batteries. Allow max voltage of 55.2V again, if SoC is
;          once below 90%
;          OR
;          The battery reached max voltage of 55.2V and the max cell difference is 0.010V, then switch to float
;          voltage of 53.6V after 300 additional seconds to don't stress the batteries. Allow max voltage of
;          55.2V again if max cell difference is above 0.050V
; Charge voltage control management enable (True/False).
CVCM_ENABLE = True
; -- CVL reset based on cell voltage diff (linear mode)
; Specify cell voltage diff where CVL limit is kept until diff is equal or lower
CELL_VOLTAGE_DIFF_KEEP_MAX_VOLTAGE_UNTIL = 0.010
; Specify cell voltage diff where CVL limit is reset to max voltage, if value get above
; the cells are considered as imbalanced, if the cell diff exceeds 5% of the nominal cell voltage
; e.g. 3.2 V * 5 / 100 = 0.160 V
CELL_VOLTAGE_DIFF_TO_RESET_VOLTAGE_LIMIT = 0.060
; -- CVL reset based on SoC option (step mode & linear mode)
; Specify how long the max voltage should be kept
;     Step mode: If reached then switch to float voltage
;     Linear mode: If cells are balanced keep max voltage for further MAX_VOLTAGE_TIME_SEC seconds
MAX_VOLTAGE_TIME_SEC = 300
; Specify SoC where CVL limit is reset to max voltage, if value gets below
SOC_LEVEL_TO_RESET_VOLTAGE_LIMIT = 96
; Option to use the State of Charge (SOC) from a SmartShunt instead of the SOC from the Battery Management System (BMS) to reset the voltage limit.
; The SOC calculations performed by the SmartShunt can often be more accurate than those performed by the BMS.
; To use this feature, set the D-Bus service name of your SmartShunt. If a service name is defined, the SOC from the SmartShunt will be used to determine when to reset to the maximum voltage.
; You can find the service name by using tools like dbus-spy in the Venus OS shell.
; If this field is left empty, the SOC from the BMS will be used by default.
; Example: UTILIZE_SOC_OF_DBUS_SERVICE = com.victronenergy.battery.ttyS5
UTILIZE_SOC_OF_DBUS_SERVICE = com.victronenergy.battery.ttyS5
;VOLTAGE_DROP = 0.022
VOLTAGE_DROP = 0
BMS_TYPE = Jkbms
; Specify in seconds how often the linear values should be recalculated
LINEAR_RECALCULATION_EVERY = 10
2 „Gefällt mir“

Das Problem ist bekannt, habe ich hier auch schon oft Thematisiert. SerialBattery Schaltet DC Feed In aus, wenn der Akku voll ist. In früheren Versionen von SerialBattery war das nicht der Fall, da hat dann der MPPT einfach weiter voll reingeballert, was zum überladen geführt hat. Das habe ich auch mitunter bei GitHub Reportet, inzwischen ist es geändert.

Ich empfehle dir einen SmartShunt. Ist sicher und dir klappt die Einspeisung.

1 „Gefällt mir“

@ogurgurpv Vielen Dank!!!

@r0li84 Einen Smartshunt (1000A) habe ich genau wegen dieser Empfehlung auch gekauft und installiert ... leider hat auch der das Problem nicht gelöst (bei mir ist er Batteriewächter), Aggregate Batteries ist das steuernde BMS.

@ogurgurpv und @r0li84
Darf ich euch noch fragen, wie sich eure min max bzw Float und Absorptionseinstellungen von jenen in Serialbattery unterscheiden?

Bzw habt ihr in Ve.Config und für die MPPT`s die gleichen Einstellungen genommen?

Vielen Dank für eure Hilfe :innocent: :innocent: :innocent:

das tut er nicht, er setzt lediglich die errechneten CVL, CCL je nach Einstellungen und veröffentlicht im DBUS die Daten aus dem BMS

@peregrines

Bei mir ist Absorption Voltage 16 * 3.45V = 55.2 V

MAX_CELL_VOLTAGE   = 3.45

Für Float habe ich 16 * 3.425V = 54.8 V

FLOAT_CELL_VOLTAGE = 3.425

Die Einstellungen in den MPPTs habe für Absorption 55.26 und für Float 53.65 eingestellt, aber, diese Einstellungen werden ignoriert, da die MPPTs den "BMS controlled" Flag aktivieren und die resultierenden Werte aus dem Battery Aggregator ziehen. Stelle bitte sicher, dass in den DVCC Einstellungen im Controlling BMS Battery Aggregator ausgewählt ist

Einstellungen im MPPT:

1 „Gefällt mir“

@ogurgurpv Vielen Dank für Deine ausführliche Hilfe! Ich denke, das wird nicht nur mir helfen, denn dieses Problem haben einige andere ebenfalls.

Hast du für die Multis in Ve.Config höhere Spannungen gewählt als für die MPPT? (damit sie den Überschuss auch einspeisen können).
Es ist für mich schwierig zu verstehen, wann welche Komponente aus dem - zugegebenermassen recht komplexen - Victron System den Ton angibt.

Probiere es mal wie folgt:

1. Unter SystemSetup als Batteriewächter den Shunt definieren:

2. DVCC aktivieren und AggregateBatteries (oder SerialBatteries bei nur einem Akkupack) als Controlling BMS

Darüber hinaus solltest du den gemeinsamen Spannungssensor aktivieren, Temperatur und Stromsensor hingegen habe ich aus (gibt da eine Empfehlung von Victron - Tabelle ansehen).

Ich hatte bis vor kurzem DVCC komplett aus und alles über den Shunt laufen. Hat mir aber dann irgendwelche automatischen Updates gezogen und plötzlich ging die AC Seitige Einspeisung mit DVCC aus nicht mehr. (Ich bin nicht drauf gekommen, wieso). Ich habe dann AggregateBatteries installiert und das so wie beschrieben gelöst.

Bei SerialBattery habe ich folgendes eingestellt:

[DEFAULT]
; If you want to add custom values/settings, then check the values/settings you want to change in "config.default.ini"
; and insert them below to persist future driver updates.
; Example (remove the semicolon ";" to uncomment and activate the value/setting):
#Allow full DC Charge - Max Charge AC: 70A + MAX Charge DC about 115A
MAX_BATTERY_CHARGE_CURRENT = 120.0
#Limited by Victron Multiplus anyhow
MAX_BATTERY_DISCHARGE_CURRENT = 70.0

Bei AggregateBattery:

2 „Gefällt mir“

Irgendwas funktioniert nicht, wenn ich den Code von AggregateBatterie oben im Beitrag einbinde (Beitrag wird dann "leer) - ich versuche es mal separat:

# Version 3.1
#######################################
########## Hardware settings ##########
#######################################
NR_OF_BATTERIES = 2                                     # Nr. of physical batteries to be aggregated. Smart shunt for battery current is not neede                                                                                                                                                                          >
NR_OF_CELLS_PER_BATTERY = 16
NR_OF_MPPTS = 1                                         # Nr. of MPPTs
DC_LOADS = False                                         # If DC loads with Smart Shunt present, can be used for total current measurement
INVERT_SMARTSHUNT = True                                # False: Current subtracted, True: Current added
#######################################
############ DBus settings ############
#######################################
BATTERY_SERVICE_NAME = 'com.victronenergy.battery'      # Key world to identify services of physical Serial Batteries (and SmartShunt if available                                                                                                                                                                          >
BATTERY_PRODUCT_NAME_PATH = '/ProductName'              # Path of Battery Product Name
BATTERY_PRODUCT_NAME = 'SerialBattery'                  # Key world to identify the batteries (to exclude SmartShunt)
BATTERY_INSTANCE_NAME_PATH = '/CustomName'              # if CustomName doesn't exist, set '/ProductName'
MULTI_KEY_WORD = 'com.victronenergy.vebus'              # Key world to identify service of Multis/Quattros (or cluster of them)
MPPT_KEY_WORD = 'com.victronenergy.solarcharger'        # Key world to identify services of solar chargers
SMARTSHUNT_NAME_KEY_WORD = 'SmartShunt'                 # Key world to identify services of SmartShunt
SEARCH_TRIALS = 10                                      # Trials to identify of all batteries before exit and restart
READ_TRIALS = 10                                        # Trials to get consistent data of all batteries before exit and restart
#######################################
############## Options ################
#######################################
CURRENT_FROM_VICTRON = True                             # If True, the current measurement by Multis/Quattros and MPPTs is taken instead of BMS.
# Necessary for JK BMS due to poor precision.
OWN_SOC = False                                         # If True, the self calculated charge indicators are taken instead of BMS
ZERO_SOC = True                                         # Allow zeroing charge counter at MIN_CELL_VOLTAGE. At full battery it is always set to 10                                                                                                                                                                          >
CHARGE_SAVE_PRECISION = 0.0025                          # Trade-off between save precision and file access frequency
#######################################
##### Charge/Discharge parameters #####
#######################################
# Please note: Victron ESS disables CCL if DC-coupled PV feed-in is active. This program disables the DC-coupled PV feed-in when necessary.
OWN_CHARGE_PARAMETERS = True                            # Calculate own charge/discharge control parameters (True) from following settings
# or use them from battery driver (False)
BALANCING_VOLTAGE = 3.5                                 # This voltage per cell will be set periodically and kept until balancing below CELL_DIFF_                                                                                                                                                                          >
BALANCING_REPETITION = 10                               # in days
CHARGE_VOLTAGE_LIST = [3.45, 3.45, 3.45, 3.50, 3.50, 3.50, 3.50, 3.50, 3.50, 3.50, 3.50, 3.50]      # Set up how full the battery has to be charge                                                                                                                                                                          >
#                       jan,  feb,  mar,  apr,  may,  jun,  jul,  aug,  sep,  oct,  nov,  dec
MAX_CELL_VOLTAGE = 3.5                                  # If reached by 1-st cell, the CVL is dynamically limited. DC-coupled PV feed-in will be d                                                                                                                                                                          >
MIN_CELL_VOLTAGE = 2.9                                  # If reached, discharge current set to zero
MIN_CELL_HYSTERESIS = 0.1                               # Allow discharge above MIN_CELL_VOLTAGE + MIN_CELL_HYSTERESIS
CELL_DIFF_MAX = 0.015                                   # If lower: re-enable DC-coupled PV feed in (if was disabled by dynamic CVL reduction and                                                                                                                                                                           >
BATTERY_EFFICIENCY = 0.98                               # Ah fed into batteries are multiplied by efficiency
MAX_CHARGE_CURRENT = 160                                # Max. charge current at normal conditions
MAX_DISCHARGE_CURRENT = 100                             # Max. discharge current at normal conditions
# settings limiting charge and discharge current if at least one cell gets full or empty
# the lists may have any length, but the same length for voltage and current
# linear interpolation is used for values between
CELL_CHARGE_LIMITING_VOLTAGE = [MIN_CELL_VOLTAGE, MIN_CELL_VOLTAGE + 0.05, BALANCING_VOLTAGE - 0.1, BALANCING_VOLTAGE, MAX_CELL_VOLTAGE] # [min, .                                                                                                                                                                          >
CELL_CHARGE_LIMITED_CURRENT =  [0.2, 1, 1, 0.05, 0]
CELL_DISCHARGE_LIMITING_VOLTAGE = [MIN_CELL_VOLTAGE, MIN_CELL_VOLTAGE + 0.1, MIN_CELL_VOLTAGE + 0.2]    # [min, ... ,max]
CELL_DISCHARGE_LIMITED_CURRENT =  [0, 0.05, 1]
########################################
### if OWN_CHARGE_PARAMETERS = False ###
########################################
# If "False", the transmitted CVL is always the minimum of all batteries
# If "True", the transmitted CVL is the maximum of all batteries until all are in "float",
# than the minimum of all is taken. Attention: By using this function you rely on the functionality
# and correct settings of the SerialBattery driver. Set "True" only if you know exactly
# what you are doing. If not sure, keep it at "False".
KEEP_MAX_CVL = False
#######################################
####### Logging and reporting #########
#######################################
SEND_CELL_VOLTAGES = 0                                 # 0: Disable Cell Info in dbus, 1: Format: /Cell/BatteryName_Cell<ID>
LOGGING = 2                                            # 0: no logging, 1: print to console, 2: print to file
LOG_PERIOD = 900                                       # in seconds; if 0, periodic logging is disabled

Der AggregateBattery Code funktioniert irgendwie nicht als "Code Darstellung" hier im Forum. (Beitrag wird dann leer).

Deswegen so:

Version 3.1

#######################################
########## Hardware settings ##########
#######################################
NR_OF_BATTERIES = 2 # Nr. of physical batteries to be aggregated. Smart shunt for battery current is not neede >
NR_OF_CELLS_PER_BATTERY = 16
NR_OF_MPPTS = 1 # Nr. of MPPTs
DC_LOADS = False # If DC loads with Smart Shunt present, can be used for total current measurement
INVERT_SMARTSHUNT = True # False: Current subtracted, True: Current added
#######################################
############ DBus settings ############
#######################################
BATTERY_SERVICE_NAME = 'com.victronenergy.battery' # Key world to identify services of physical Serial Batteries (and SmartShunt if available >
BATTERY_PRODUCT_NAME_PATH = '/ProductName' # Path of Battery Product Name
BATTERY_PRODUCT_NAME = 'SerialBattery' # Key world to identify the batteries (to exclude SmartShunt)
BATTERY_INSTANCE_NAME_PATH = '/CustomName' # if CustomName doesn't exist, set '/ProductName'
MULTI_KEY_WORD = 'com.victronenergy.vebus' # Key world to identify service of Multis/Quattros (or cluster of them)
MPPT_KEY_WORD = 'com.victronenergy.solarcharger' # Key world to identify services of solar chargers
SMARTSHUNT_NAME_KEY_WORD = 'SmartShunt' # Key world to identify services of SmartShunt
SEARCH_TRIALS = 10 # Trials to identify of all batteries before exit and restart
READ_TRIALS = 10 # Trials to get consistent data of all batteries before exit and restart
#######################################
############## Options ################
#######################################
CURRENT_FROM_VICTRON = True # If True, the current measurement by Multis/Quattros and MPPTs is taken instead of BMS.

Necessary for JK BMS due to poor precision.

OWN_SOC = False # If True, the self calculated charge indicators are taken instead of BMS
ZERO_SOC = True # Allow zeroing charge counter at MIN_CELL_VOLTAGE. At full battery it is always set to 10 >
CHARGE_SAVE_PRECISION = 0.0025 # Trade-off between save precision and file access frequency
#######################################

Charge/Discharge parameters

#######################################

Please note: Victron ESS disables CCL if DC-coupled PV feed-in is active. This program disables the DC-coupled PV feed-in when necessary.

OWN_CHARGE_PARAMETERS = True # Calculate own charge/discharge control parameters (True) from following settings

or use them from battery driver (False)

BALANCING_VOLTAGE = 3.5 # This voltage per cell will be set periodically and kept until balancing below CELL_DIFF_ >
BALANCING_REPETITION = 10 # in days
CHARGE_VOLTAGE_LIST = [3.45, 3.45, 3.45, 3.50, 3.50, 3.50, 3.50, 3.50, 3.50, 3.50, 3.50, 3.50] # Set up how full the battery has to be charge >

jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec

MAX_CELL_VOLTAGE = 3.5 # If reached by 1-st cell, the CVL is dynamically limited. DC-coupled PV feed-in will be d >
MIN_CELL_VOLTAGE = 2.9 # If reached, discharge current set to zero
MIN_CELL_HYSTERESIS = 0.1 # Allow discharge above MIN_CELL_VOLTAGE + MIN_CELL_HYSTERESIS
CELL_DIFF_MAX = 0.015 # If lower: re-enable DC-coupled PV feed in (if was disabled by dynamic CVL reduction and >
BATTERY_EFFICIENCY = 0.98 # Ah fed into batteries are multiplied by efficiency
MAX_CHARGE_CURRENT = 160 # Max. charge current at normal conditions
MAX_DISCHARGE_CURRENT = 100 # Max. discharge current at normal conditions

settings limiting charge and discharge current if at least one cell gets full or empty

the lists may have any length, but the same length for voltage and current

linear interpolation is used for values between

CELL_CHARGE_LIMITING_VOLTAGE = [MIN_CELL_VOLTAGE, MIN_CELL_VOLTAGE + 0.05, BALANCING_VOLTAGE - 0.1, BALANCING_VOLTAGE, MAX_CELL_VOLTAGE] # [min, . >
CELL_CHARGE_LIMITED_CURRENT = [0.2, 1, 1, 0.05, 0]
CELL_DISCHARGE_LIMITING_VOLTAGE = [MIN_CELL_VOLTAGE, MIN_CELL_VOLTAGE + 0.1, MIN_CELL_VOLTAGE + 0.2] # [min, ... ,max]
CELL_DISCHARGE_LIMITED_CURRENT = [0, 0.05, 1]
########################################

if OWN_CHARGE_PARAMETERS = False

########################################

If "False", the transmitted CVL is always the minimum of all batteries

If "True", the transmitted CVL is the maximum of all batteries until all are in "float",

than the minimum of all is taken. Attention: By using this function you rely on the functionality

and correct settings of the SerialBattery driver. Set "True" only if you know exactly

what you are doing. If not sure, keep it at "False".

KEEP_MAX_CVL = False
#######################################
####### Logging and reporting #########
#######################################
SEND_CELL_VOLTAGES = 0 # 0: Disable Cell Info in dbus, 1: Format: /Cell/BatteryName_Cell<ID>
LOGGING = 2 # 0: no logging, 1: print to console, 2: print to file
LOG_PERIOD = 900 # in seconds; if 0, periodic logging is disabled

1 „Gefällt mir“

Immer noch nicht? Dachte ich habs mal wo gelesen, dass die das jetzt korrigiert haben.

AggregateBattery tut es auf jeden Fall:

# Please note: Victron ESS disables CCL if DC-coupled PV feed-in is active. This program disables the DC-coupled PV feed-in when necessary.

@peregrines

... die Laderegler-Einstellungen der MultiPlus II

Die MPPTs bedienen sich jedoch den Werten aus dem Controlling BMS (DVCC Einstellungen) wie im Post von R0Li84 beschrieben ist.

1 „Gefällt mir“

@ogurgurpv und @R0Li84 Vielen herzlichen Dank an Euch beide!!!

es kann sein dass ich mich irre, hier steht "when necessary" was für mich != "wenn Akku voll ist" Unterschied machte.

... schaue heute abend den Code von BatteryAggregator was er damit meint.