SEPLOS V3 - VenusOS V3.21 - dbus.serialbattery Ladespannungsbegrenzung CVL wird ignoriert

Hallo zusammen,

aktuell bin ich ein wenig am Verzweifeln. Bisher war ein 5kWh DIY Akku mit JK BMS per dbus.serialbattery Treiber am VenusOS angebunden und die Einstellungen über die config.ini wurden exakt so eingehalten wie in der config parametriert. Das System lief jetzt ein Jahr sehr zufriedenstellend. Einzig, der 5kWh Akku ist ab April oft viel zu früh voll.

Jetzt wurde der DIY Akku testweise gegen einen 16x280Ah AMY Wan Block mit SEPLOS V3 ersetzt, an der config.ini wurde bis auf ein Hochsetzen der Parameter MAX_BATTERY_CHARGE_CURRENT und MAX_BATTERY_DISCHARGE_CURRENT nichts verändert, im Vergleich zum vorherigen DIY Akku. Angebunden ist das SEPLOS per isoliertem RS485 zu USB Adapter, Datenkommunikation funktioniert.

Installierte dbus.serialbattery Version 1.3.20240428dev (mit allen anderen Versionen konnte keine Kommunikation via RS485 zum VenusOS aufgebaut werden).

Der Grund meiner Verzweifelung, die CVL Einstellungen aus der config.ini werden offensichtlich ignoriert. In der config.ini ist MAX_CELL_VOLTAGE = 3.460 eingestellt, also erwarte ich im VenusOS, wie beim alten Akku auch, eine CVL von 55,36V - wo kommen bloß die 57,6V her?

Kann es eventuell an dem im BMS Studio gewählten Kommunikationsprotokoll für RS485 liegen?

Batteriewächter-Einstellungen:

poste mal bitte ein entsprechendes Log von dbus-serialbattery

How to troubleshoot | dbus-serialbattery (louisvdw.github.io)

Du schreibst, du hättest nur zwei Werte zur Stromstärke verändert und sonst nichts. Ich glaube nicht, dass die max cell (monomer/einzel) Spannung im seplos standardmäßig bei nur 3,46V liegt. Sie dürfte eher bei 3,60-3,65V liegen.

Jedenfalls...

CVL wird, soweit ich mich zurück erinnere, nicht vom Venus OS aus den einzelspannungen "berechnet", sondern vom seplos für das gesamte Pack mitgeteilt. Seplos bms unterscheidet zwischen verschiedenen Spannungen der einzelnen Zelle(n) und verschiedenen Spannungen des gesamten packs. Ich wette, in deiner nahezu unveränderten seplos config stehen noch irgendwo exakt diese 57,6V drin. Vielleicht als overvoltage alarm oder ähnliches.

Viel Erfolg und lass mal wissen, ob es geklappt hat :slight_smile:

@Moritz1983 er hat das SeplosV3 via RS485 (mit dbus-serialbattery) angebunden.. das was du schreibst bezieht sie auf die Seplos BMS-config, welche erst einmal unabhängig von der Konfiguration von serialbattery ist und primär zum Tragen kommt, wenn das Seplos via CAN angebunden ist.

Das werd ich, wenn ich wieder Zugriff auf den Raspi habe.

Ich bezog das "nur zwei Werte geändert" auf die Parameter in der config.ini des dbus.serialbattery Treibers beim Wechsel von DIY Akku zu AMY Wan Akku. Natürlich ist die config.ini von mir seinerzeit hinsichtlich Ladekurve umfangreich angepasst worden da sich der Akku im Außenbereich befindet (z.B. Ladeströme zellspannungs- und temperaturabhängig reduzieren). Diese Änderungen/Anpassungen wollte ich aber auch für den großen Akku so übernehmen. Daher nur die Anpassung der Werte MAX_BATTERY_CHARGE_CURRENT und MAX_BATTERY_DISCHARGE_CURRENT.

Das dort irgendwo noch 57,6V rumgeistern kann ich tatsächlich gerade nicht 100% ig ausschließen. Jedoch hab ich bereits über das BMS Studio diverse Spannungs-, Strom- und Temperaturparameter und Alarmschwellwerte nach unten angepasst da mir die Werte ab Werk deutlich zu hoch waren.

Jedoch, wie @mdkeil es angerissen hatte, beim dbus.serialbattery Treiber war ich es bisher gewohnt, dass die in VenusOS angezeigte CVL immer das Ergebnis aus MAX_CELL_VOLTAGE x Anzahl Zellen war. Nur jetzt bleibt der Wert in VenusOS konstant auf 57,6V...

Aber mal sehen, ich versuche nach Feierabend mal die Logdaten zu posten...

Möglicherweise habe ich im SEPLOS BMS Studio das falsche Kommunikationsprotokoll ausgewählt?

By the way, ein Herabsetzen des max. zulässigen Ladestroms wird nicht ignoriert sondern befolgt:

Gut möglich-- da ich ein Seplos V2 nutze, kann ich nicht mit tiefergehendem Wissen auftreten :slight_smile: zudem ist den V3 noch gar nicht solange in serialbattery enthalten.

Soeben nach einem Neustart des VenusOS:

tail -F /data/log/dbus-serialbattery.ttyUSB0/current | tai64nlocal
2024-05-08 23:34:42.675654500 ERROR:SerialBattery:>>> ERROR: No reply - returning
2024-05-08 23:34:43.680172500 ERROR:SerialBattery:>>> ERROR: No reply - returning
2024-05-08 23:34:44.665833500 ERROR:SerialBattery:>>> ERROR: No reply - returning
2024-05-08 23:34:45.172920500 ERROR:SerialBattery:ERROR >>> No battery connection at /dev/ttyUSB0
2024-05-08 23:43:56.217046500 *** CCGX booted (0) ***
2024-05-08 23:53:32.242638500 *** CCGX booted (0) ***
2024-05-09 00:00:08.203250500 *** CCGX booted (0) ***
2024-05-13 16:06:23.322983500 *** CCGX booted (0) ***
2024-05-13 16:37:59.250895500 *** CCGX booted (0) ***
2024-05-13 16:43:08.159866500 *** CCGX booted (0) ***

Der eigentliche USB-Port an dem der Akku per isoliertem RS485 zu USB Adapter angeschlossen ist (ebenfalls nach Neustart) nach dem der Akku dann gefunden wurde wird das Logfile nicht mehr weiter gefüllt:

tail -F /data/log/dbus-serialbattery.ttyUSB1/current | tai64nlocal
2024-05-13 16:44:03.242650500 ERROR:SerialBattery:>>> ERROR: No reply - returning
2024-05-13 16:44:03.306051500 ERROR:SerialBattery:>>> ERROR: No reply - returning
2024-05-13 16:44:06.974926500 ERROR:SerialBattery:>>> ERROR: No reply - returning
2024-05-13 16:44:07.782296500 ERROR:SerialBattery:>>> ERROR: No reply - returning
2024-05-13 16:44:08.054485500 ERROR:SerialBattery:>>> ERROR: No reply - returning
2024-05-13 16:44:08.322767500 ERROR:SerialBattery:>>> ERROR: No reply - returning
2024-05-13 16:44:08.591376500 ERROR:SerialBattery:>>> ERROR: No reply - returning
2024-05-13 16:44:08.862938500 ERROR:SerialBattery:>>> ERROR: No reply - returning
2024-05-13 16:44:09.133460500 ERROR:SerialBattery:>>> ERROR: No reply - returning
2024-05-13 16:44:10.141772500 ERROR:SerialBattery:>>> ERROR: No reply - returning

Anschließend werden die Akkudaten zyklisch gepollt, diese Ausgabe wiederholt sich dann nur noch:

2024-05-13 16:08:44.291094500 DEBUG:SerialBattery:Updating Seplos v3 Pack_3 SP18B2312010006
2024-05-13 16:08:44.305797500 DEBUG:SerialBattery:logged to dbus [93.6]
2024-05-13 16:08:44.306604500 DEBUG:SerialBattery:Cells:[1]3.333V [2]3.334V [3]3.331V [4]3.332V [5]3.331V [6]3.334V [7]3.333V [8]3.334V [9]3.331V [10]3.333V [11]3.332V [12]3.332V [13]3.332V [14]3.332V [15]3.332V [16]3.333V
2024-05-13 16:08:45.322694500 DEBUG:SerialBattery:spa: [4, 16, 5400, 5600, 5680, 5760, 4800, 4640, 4800, 4320, 3400, 3500, 3500, 3600, 3100, 2900, 3000, 2700, 2500, 800, 500, 140, 150, 180, 100, 280, 300, 65396, 65356, 65336, 50, 65236, 300, 65236, 106, 600, 5, 3000, 205, 10, 3500, 3400, 1500, 1000, 800, 200, 30, 3111, 3131, 3151, 3181, 2781, 2751, 2731, 2631, 3111, 3131, 3151, 3181, 2761, 2631, 2731, 2581, 3201, 3231, 3281, 3331, 2761, 2731, 2731, 2631, 3531, 3581, 3581, 3681, 2831, 2731, 3231, 2731, 10, 3500, 50, 30, 960, 230, 200, 150, 100, 28000, 28000, 26208, 48, 60, 240, 10, 7, 0, 13, 0, 500, 300, 5552, 140, 65396, 9, 8]
2024-05-13 16:08:45.323200500 DEBUG:SerialBattery:pia: [5332, 251, 26208, 28000, 48, 936, 1000, 2, 3332, 2982, 3334, 3331, 2984, 2980, 0, 140, 140, 1000]
2024-05-13 16:08:45.323700500 DEBUG:SerialBattery:pib: [3333, 3334, 3331, 3332, 3331, 3334, 3333, 3334, 3331, 3333, 3332, 3332, 3332, 3332, 3332, 3333, 2984, 2983, 2980, 2982, 2731, 2731, 2731, 2731, 2993, 2978]
2024-05-13 16:08:45.324131500 DEBUG:SerialBattery:sca: [59399, 1294, 9, 7967]
2024-05-13 16:08:45.324734500 DEBUG:SerialBattery:sfa: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0]
2024-05-13 16:08:45.325456500 DEBUG:SerialBattery:pic: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Ich hoffe damit kannst du etwas anfangen. Für mich sieht das erst mal so aus als wenn alles, zumindest die Kommunikation betreffend, rund läuft.

PS: Witzig, wenn das Logfile in den Code-Tags zu lang ist, postet das Forum einfach eine weiße, leere Seite....

also ich hätte folgendes Log erwartet.. ok, ich habe nur ein v2, so unterschiedlich wird es aber nicht sein..

tail -n 50 -F /data/log/dbus-serialbattery.ttyUSB1/current | tai64nlocal
2024-05-10 12:04:11.401179500 INFO:SerialBattery:Starting dbus-serialbattery
2024-05-10 12:04:11.403698500 INFO:SerialBattery:Venus OS v3.31
2024-05-10 12:04:11.404756500 INFO:SerialBattery:dbus-serialbattery v1.3.20240510dev
2024-05-10 12:04:27.426777500 INFO:SerialBattery:-- Testing BMS: 1 of 3 rounds
2024-05-10 12:04:27.426788500 INFO:SerialBattery:Testing Seplos
2024-05-10 12:04:28.569293500 INFO:SerialBattery:Connection established to Seplos
2024-05-10 12:04:29.108052500 INFO:SerialBattery:Found existing battery with DeviceInstance = 1
2024-05-10 12:04:29.375299500 INFO:SerialBattery:DeviceInstance = 1
2024-05-10 12:04:29.377224500 INFO:SerialBattery:PID file created successfully: /var/tmp/dbus-serialbattery_1.pid
2024-05-10 12:04:29.377916500 INFO:SerialBattery:Used DeviceInstances = ['1']
2024-05-10 12:04:29.378575500 INFO:SerialBattery:com.victronenergy.battery.ttyUSB1
2024-05-10 12:04:29.415905500 INFO:SerialBattery:publish config values = True
2024-05-10 12:04:29.448182500 INFO:SerialBattery:Battery Seplos connected to dbus from /dev/ttyUSB1
2024-05-10 12:04:29.448852500 INFO:SerialBattery:========== Settings ==========
2024-05-10 12:04:29.449702500 INFO:SerialBattery:> Connection voltage: 53.86 V | Current: 13.69 A | SoC: None%
2024-05-10 12:04:29.450318500 INFO:SerialBattery:> Cell count: 16 | Cells populated: 16
2024-05-10 12:04:29.451626500 INFO:SerialBattery:> LINEAR LIMITATION ENABLE: True
2024-05-10 12:04:29.452354500 INFO:SerialBattery:> MIN CELL VOLTAGE: 2.9 V | MAX CELL VOLTAGE: 3.45 V
2024-05-10 12:04:29.453038500 INFO:SerialBattery:> MAX BATTERY CHARGE CURRENT: 100.0 A | MAX BATTERY DISCHARGE CURRENT: 100.0 A
2024-05-10 12:04:29.453659500 INFO:SerialBattery:> CVCM: True
2024-05-10 12:04:29.454283500 INFO:SerialBattery:> CCCM CV: True | DCCM CV: True
2024-05-10 12:04:29.454886500 INFO:SerialBattery:> CCCM T: True | DCCM T: True
2024-05-10 12:04:29.455486500 INFO:SerialBattery:> CCCM SOC: True | DCCM SOC: True
2024-05-10 12:04:29.456089500 INFO:SerialBattery:> CHARGE FET: None | DISCHARGE FET: None | BALANCE FET: None
2024-05-10 12:04:29.456975500 INFO:SerialBattery:Serial Number/Unique Identifier: SeplosBMS16cells_280.0Ah

Welches Kommunikationsprotokoll hast du denn für RS485 engestellt?

@mdkeil Moin, heute Morgen war ich noch mal kurz am Akku und hab in die Parameter des BMS Studio geschaut. Dabei hab ich herausgefunden, dass die Einstellung von CVL in VenusOS von dem BMS Parameter "Battery over voltage protection" übernommen wird. Das scheint mir ein Bug in der Implementierung des SEPLOS V3 in den dbus.serialbattery Treiber zu sein.

Nachdem ich den Wert auf Folgenden geändert habe:

wurde das auch so in VenusOS übernommen:

Du lagst damit also richtig. Allerdings darf meines Erachtens nicht die allerletzte Stufe einer Überspannungsüberwachung in VenusOS als Ladeschlussspannung verwendet werden.

Parallel zu den Anfrage hier hatte ich bei GitHub bereits einen Issue eröffnet, ich weiß - zweigleisig fahren ist nicht so ideal - aber vielleicht kann es nicht schaden wenn die Info zur Lösung des Problems bei GitHub und auch hier zur Verfügung steht.

Jep, das sehe ich auch so..

Es wurde ja bereits ein möglicher Workaround zum Testen beschrieben; kannst Du ja mal umsetzen - ist ja fix gemacht.

@mdkeil Ich komme vermutlich von der Arbeit aus nicht an den Raspi :neutral_face: So muss das bis heute Abend warten.

Das eilt ja auch nicht.. die Ursache ist ja nun bekannt :slight_smile:

Das macht der Treiber defaultmäßig auch nicht.. Du kannst aber auch noch eine Spannung via DVCC setzen als weitere Sicherheit :wink:

Hab ich... siehe SEPLOS V3 - VenusOS V3.21 - dbus.serialbattery Ladespannungsbegrenzung CVL wird ignoriert - #5 von hf_spsler - Seplos BMS - Akkudoktor Forum ...wird ebenfalls ignoriert, bzw. zumindest nicht bei CVL übernommen.

Da habe ich damit auch nicht gemeint.. Momentan wird CVL einfach von SerialBattery für das Seplos V3 nicht berechnet (da es fix gesetzt wird, nämlich mit dem ausgelesenen OVP-Wert) -- genau das sollt Du ja auskommentieren.. ich gehe davon aus, dass es heute Abend dann wie erwartet gehen wird nach der Anpassung.. Und die Spannung, welche in DVCC eingestellt ist, ist unabhängig von CVL.. sprich der MP2 wird nie über diese Spannung gehen, wenn aktiviert-- Ich fahre z.B. via CVL auf 55.2V.. sollte es dort aber mal zu einem Fehler kommen (warum auch immer)-- ist meine nächste Schwelle 56,4V via DVCC.. danach kommt dann ja noch der OVA/OVP im BMS direkt, wobei das Überschreiten vom OVP zur Trennen des Akkus führen würde.

@mdkeil Du meinst damit, dass die unter DVCC eingestellte maximale Ladespannung von allen "ladenden" Teilnehmern,
also auch von MPPTs berücksichtigt wird und der CVL übergordnet ist?

Was den MP2 angeht auf jeden Fall.. wie es bei den MPPTs aussieht kann ich Dir leider nicht beantworten.., ich würde aber vermuten, dass diese dann ebenfalls der Einstellung folgen.

Mdkeil hat schon recht.

Der CVL bleibt wie er ist.

Er kommt vom bms und ist nur lesend. Er kann im venos nicht geändert werden.

Wenn du eine vorsicherheitsstufe über Victron einbauen willst, musst du das über DVCC regeln.

Der DVCC Wert ist dann auch für das ESS maßgebend.

Beispiel: mein CVL steht auf 56,8V. Das ist der overvoltage protection Wert aus dem BMS. DVCC regelt aber schon bei 55,2V ab. Ab erreichen der 55,2V gehen die Multis in absorption.

Ja. Die mppts laderegler werden im ESS fremdgesteuert. Sie werden sich dann auf die maximale Spannung, die im DVCC (nicht im BMS bzw CVL) eingestellt ist, einpendeln. Beim echten ESS (mit Anschluß ans Netz) werden sie weiter produzieren und damit die Multis versorgen, um ins Haus oder öffentliche Netz einzuspeisen.

Mir ist klar das CVL nicht direkt im VenusOS parametriert werden kann. Jedoch ist der Wert über die MAX_CELL_VOLTAGE = 3.45 (x16) über den dbus.serialbattery Treiber einstellbar. Ich weiß nicht wie du darauf kommst dass ich eine Vorsicherheitsstufe haben möchte?

CVL ist keine Sicherheitsmaßnahme, CVL ist die reguläre Ladeschlussspannung. Und ich möchte, dass die Ladeschlussspannung aus der config.ini des dbus.serialbattery Treiber übernommen- und nicht vom OvervoltageProtectionAlarm aus dem BMS genommen wird. Es handelt sich hierbei um einen Bug im dbus.serialbattery Treiber. Ansonsten würde zum einen die Parametrierbarkeit über MAX_CELL_VOLTAGE keinen Sinn machen bzw. bei Ladeschluss (mal davon abgesehen das mir der Spannungswert von OVP für den Alltag viel zu hoch ist) würde das BMS jedes Mal in den protect gehen und einen Alarm schmeißen.

Das kann hier auch nachgelesen werden: https://github.com/Louisvdw/dbus-serialbattery/issues/1056#issuecomment-2111051278

Lädst du nur über Multis und/oder mit MPPTs?