Spannungskurve schaltet nicht von Absorption auf Float, Victron und Seplos-BMS

Hallo Leute, seit einiger Zeit läuft meine Anlage wirklich gut, nur meine Batteriesteuerung macht mir Probleme, das heißt, ich weiß nicht, ob das so passt und bitte um Info aus dem Netz von Euch.

Ausrüstung:
Seplos BMS 10E,
Victron MP2
MPPT
steuerndes BMS: ja
max Ladespannung: ja 56,4 V
DVCC: an

Batterie wird korrekt geladen, jedoch schaltet die Steuerung nicht in Float-Modus bei reduzierter Spannung. Die Spannung wird bis Sonnenuntergang auf 56,4 V gehalten.

Ist das normal? Ich denke nein. Wie kann ich das ändern?

Grüße ins Netz
Ulli

Stell die

spannung erst mal auf einen vernünftigen Wert zwischen 3,4V und 3,43V pro Zelle also maximal 54,9V ein.

Da ist nicht das Problem.

Welches Ladegerät (MPPT) verwendest du? Dort werden die Ladeparameter eingestellt. Die kannst du hier vorstellen. Die Ladeschluss Spannung ist, wie von @r-l angemerkt, unnötig hoch - nicht gut für den Akku.

L.G.

die MPPT´s (450-100) 150/30, 150/45, und andere werden fernbedient. Die EInstellungen dort werde, soweit ich das in erinnerung habe vom Cerbo (oder von wem auch immer?) gesteuert. Der Fronius kann über MP2 ebenfalls die Batterie laden. In den Systemeinstellungen der MP2 habe ich gelesen, dass hier der ladestrom und die Ladespannung (auch Float) eingestellt werden kann. Jedoch macht das keinen SInn, wenn die MPPTs ihr eigenes Ding machen. Wie und wo ist die zentrale Regelung? Ich hatte zunächst gedacht, dass der MP2 diese Steuerung kmplett für alle übernimmt. Der Elektriker meinte aber, das macht das BMS (Seplos). Deshalb meine Frage, wie und wo wird Float eingestellt?

Nicht in einem Victron ESS bzw. in einem Victron System mit aktiver BMS Steuerung.
Wenn die BMS Steuerung aktiv ist werden die Ladeparameter vom BMS bestimmt, ist sie nicht aktiv werden die Ladeparameter im Multiplus festgelegt (falls der ESS Assistent installiert ist) und die eingestellten Ladeparameter der MPPT ignoriert (bis auf den maximal eingestellten Ladestrom in den Ladereglern).

Die Frage wäre also als erstes, warum ist die BMS Steuerung überhaupt aktiv?
Und wenn sie aktiv sein soll dann muss man eben auch genau da nach "dem Fehler" suchen bzw. verwendet man das BMS garnicht erst zur Steuerung. Ladeparameter legt man im Ladegerät/Laderegler fest denn genau dafür wurde es gebaut bzw. Ich persönlich gehe sogar soweit und habe die Steuerung der MPPT über den Multiplus ausgehebelt (ESS), weil dieser 1. längst nicht das bieten kann was ein Victron Laderegler an Einstellmöglichkeiten besitzt, und 2. jede Komponente im System seine eigene Aufgabe besitzt.

Hier was zum lesen.
Ganz zum Schluss im Thread findet man weitere Links zu Problem Threads die durch die Steuerung des BMS verursacht wurden:

https:// Streitschrift - Warum man BMS nicht in (SOC)- Regelkreise einbindet

Nein wird sie nicht, sonst gäbe es denn Thread von dir ja auch nicht :wink:. Sie wird sogar über Stunden massiv überladen. Ich empfehle dringend das Victron ESS Handbuch, das Handbuch des Cerbo GX, und das Handbuch der Laderegler zu lesen und zu verstehen.

Bzw.

Dann solltest du den Elektriker mal fragen warum das ganze so ist wie es ist. Offensichtlich versteht der Elektriker ja nicht gerade viel von dem was er da installiert hat.

Danke UFO, ich möchte die Paramter des BMS gerne nachlesen, finde jedoch die exemplarischen Einstellungen nicht. Bitte Link dazu. Dann vergleiche ich meine SEPLOS Einstellungen. Ich kann mich jedenfalls nicht erinnern, in den Einstellungspunkten irgendwas zu den Float einstellungen gefunden zu haben.

Bei den Parametern des Seplos kann ich dir leider nicht weiterhelfen.
Aber @hf_spsler hat soweit ich mich entsinne mehere Seplos inkl. Steuerung darüber am laufen. Oder aber mittlerweile auch @paddy72 der schon Erfahrungen zu den Einstellungen im Seplos wie der Ladeschlussspannung, Erhaltungsspannung etc. gemacht hat. Die beiden können dir sicher weiterhelfen :wink:.

Ich verwende noch eine etwas ältere Firmware auf meinen Seplos V3. Da ist keine Floatspannung hinterlegt, lediglich der Ladestrom wird auf 10A pro BMS reduziert wenn CellOverVoltageAlarm bzw. BatteryOvervoltageAlarm erreicht ist. Um nicht an die Grenzen des Machbaren zu gehen setzt man dazu COVA auf 3,450V und BOVA auf 16xCOVA.

Ich erinnere mich dunkel das mit der neuesten Firmware wohl eine Floatspannung hinterlegt ist und das BMS damit wohl RequestedChargingVoltage entsprechend reduziert. Die RCV wird dann (ich kanns nur für Victron erläutern) an die Ladeinstanzen (MPPT, Multiplus usw.) kommuniziert.

Ich stelle mit einem kleinen Nodered die Floatspannung indirekt ein indem der Smart-Shunt 100% erreichen muss dann die Ladeschlussspannung für 30min gehalten wird und dann über DVCC die Ladeschlussspannung auf 53,6V herabgesetzt wird bis der SOC vom Smart-Shunt einen Schwellwert unterschreitet, z.B. 70% jetzt im Sommer.

Bisher hatte ich noch nicht den Mut die Firmware der 6 Packs zu aktualisieren, quasi never change a running System.

1 „Gefällt mir“

Das Seplos BMS E10 sagt mir jetzt nichts, ich habe ein V3.0. Zum Seplos BMS gibt es doch auch eine App fürs Smartphone, darüber lassen sich alle Parameter steuern. Per Default lädt das Seplos m.E. zu hoch und verfügt m.W. auch über keine separate Einstellung für die Floatspannung? Weiß nicht wie das beim E10 ist, aber vermutlich ähnlich?

Bei mir gibt es einen Parameter 'requested charge voltage', die wird bei BMS-Steuerung an den Wechselrichter weitergereicht und legt die Ladeschlußspannung fest. Wenn die irgendwann erreicht ist, wird die Spannung m.W. nur leicht abgesenkt und dann immer auf diesem - recht hohen - Wert gehalten. Das hat mir gar nicht gefallen, zumal es offenbar eine Untergrenze für die req. charge voltage gibt, so dass der Wert scheinbar immer wieder überschrieben wird - obwohl man ihn im BMS speichern kann. Dennoch hat der WR weiterhin bis 56,... V geladen.

Daraufhin habe ich die Steuerung auf spannungsgeregelt im Deye-WR gestellt und kann nun Absorptions- und Floatspannung über den WR steuern. Damit gibt es dann keine Kommunikation BMS-WR mehr, sondern der WR fungiert als Laderegler und das BMS macht die Überwachung der Vitalfunktionen des Akkus. So soll es eigentlich auch sein, obwohl die meisten es als ideal ansehen, wenn der WR mit dem BMS kommuniziert und das BMS die Steuerung der Ladung übernimmt.

1 „Gefällt mir“

uhh, das sind gute Nachrichten! Danke HF_SPSler und UFO für Eurer Beiträge. Ja ich habe meine SEPLOS BMS seit 3 Jahren laufen. Die Beobachtung von paddy ist mit meinen Einstellungen vermutlich identisch, nur dass mein Wechselrichter mit BMS Seplos zusammenarbeitet und die Abschaltung der Ladung (nicht Spannung) erreicht.

Mit Note-Red ist es eine gute Idee, weiß nicht ob ich das hinkriege. Die Firmware abzudaten sehe ich auch nicht als zielführend an, da was schief gehen kann.

Scheinbar habe nur ich das Problem....?

Viele Grüße
Uli

1 „Gefällt mir“

Hier das Beispiel (ich hab das damals nicht selbst erstellt sondern von den Werten her nur angepasst)

Den unteren Teil mit der Relaissteuerung vom RS450/200 kannst du ignorieren. Das steuert bei mir den Remotekontakt meines dreiphasigen Solax X3 12K wenn der Akku 100% erreicht hat. Im Frühjahr hatte ich noch kein Vertrauen zu der Frequenzregelung des Solax und wollte ihn sicherheitshalber "hart" ausschalten wenn der Akku voll ist.

Nachfolgend der JSON Code den du einfach als Flow importieren kannst. Nach dem Importieren den Teil "Switches SOLAX X3 ON..." einfach entfernen.

[
    {
        "id": "b973eec205c3906c",
        "type": "tab",
        "label": "VenosOS to Float-Voltage",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "7bb14501c29b2de2",
        "type": "victron-output-custom",
        "z": "b973eec205c3906c",
        "service": "com.victronenergy.settings",
        "path": "/Settings/SystemSetup/MaxChargeVoltage",
        "serviceObj": {
            "service": "com.victronenergy.settings",
            "name": "com.victronenergy.settings"
        },
        "pathObj": {
            "path": "/Settings/SystemSetup/MaxChargeVoltage",
            "name": "/Settings/SystemSetup/MaxChargeVoltage",
            "type": "number"
        },
        "name": "DVCC | CVL",
        "onlyChanges": false,
        "outputs": 0,
        "x": 850,
        "y": 200,
        "wires": []
    },
    {
        "id": "e30b3f1049387aad",
        "type": "victron-input-battery",
        "z": "b973eec205c3906c",
        "service": "com.victronenergy.battery/288",
        "path": "/Soc",
        "serviceObj": {
            "service": "com.victronenergy.battery/288",
            "name": "SmartShunt 1000A/50mV"
        },
        "pathObj": {
            "path": "/Soc",
            "type": "float",
            "name": "State of charge (%)"
        },
        "initial": "",
        "name": "SOC",
        "onlyChanges": false,
        "roundValues": "3",
        "outputs": 1,
        "x": 90,
        "y": 240,
        "wires": [
            [
                "de812041ff0e854c",
                "0930d3b37f449722"
            ]
        ]
    },
    {
        "id": "de812041ff0e854c",
        "type": "switch",
        "z": "b973eec205c3906c",
        "name": "100% / 70%",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "100",
                "vt": "num"
            },
            {
                "t": "lte",
                "v": "70",
                "vt": "num"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 290,
        "y": 240,
        "wires": [
            [
                "8aff2e3ec24a062e"
            ],
            [
                "221312a85d1a3cd7"
            ]
        ]
    },
    {
        "id": "585ef54161067b85",
        "type": "inject",
        "z": "b973eec205c3906c",
        "name": "manual bulk",
        "props": [],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "x": 490,
        "y": 320,
        "wires": [
            [
                "221312a85d1a3cd7"
            ]
        ]
    },
    {
        "id": "7ff277083b0bd80f",
        "type": "inject",
        "z": "b973eec205c3906c",
        "name": "manual float",
        "props": [],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "x": 490,
        "y": 120,
        "wires": [
            [
                "be0b2aad68cb075d"
            ]
        ]
    },
    {
        "id": "7e8658e95e137146",
        "type": "victron-input-custom",
        "z": "b973eec205c3906c",
        "service": "com.victronenergy.settings",
        "path": "/Settings/SystemSetup/MaxChargeVoltage",
        "serviceObj": {
            "service": "com.victronenergy.settings",
            "name": "com.victronenergy.settings"
        },
        "pathObj": {
            "path": "/Settings/SystemSetup/MaxChargeVoltage",
            "name": "/Settings/SystemSetup/MaxChargeVoltage",
            "type": "number",
            "value": 53.6
        },
        "name": "DVCC | CVL",
        "onlyChanges": false,
        "outputs": 1,
        "conditionalMode": false,
        "outputTrue": "",
        "outputFalse": "",
        "debounce": "",
        "x": 850,
        "y": 280,
        "wires": [
            []
        ]
    },
    {
        "id": "be0b2aad68cb075d",
        "type": "change",
        "z": "b973eec205c3906c",
        "name": "53.44V",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "53.44",
                "tot": "num"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 700,
        "y": 200,
        "wires": [
            [
                "7bb14501c29b2de2"
            ]
        ]
    },
    {
        "id": "221312a85d1a3cd7",
        "type": "change",
        "z": "b973eec205c3906c",
        "name": "0",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "0",
                "tot": "num"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 690,
        "y": 240,
        "wires": [
            [
                "7bb14501c29b2de2"
            ]
        ]
    },
    {
        "id": "8aff2e3ec24a062e",
        "type": "delay",
        "z": "b973eec205c3906c",
        "name": "",
        "pauseType": "delay",
        "timeout": "30",
        "timeoutUnits": "minutes",
        "rate": "1",
        "nbRateUnits": "1",
        "rateUnits": "second",
        "randomFirst": "1",
        "randomLast": "5",
        "randomUnits": "seconds",
        "drop": false,
        "allowrate": false,
        "outputs": 1,
        "x": 490,
        "y": 200,
        "wires": [
            [
                "be0b2aad68cb075d"
            ]
        ]
    },
    {
        "id": "0930d3b37f449722",
        "type": "function",
        "z": "b973eec205c3906c",
        "name": "SOC <= 70 Relais ON | >=100 Relais OFF",
        "func": "// Vorherigen Zustand aus dem Kontext laden (Standard ist 0, falls noch nichts gespeichert wurde)\nlet lastState = context.get('lastState') || 0;\nlet input = Number(msg.payload);\n\nif (input <= 70) {\n    msg.payload = 1;\n    context.set('lastState', 1); // Zustand für das nächste Mal merken\n} else if (input >= 100) {\n    msg.payload = 0;\n    context.set('lastState', 0); // Zustand für das nächste Mal merken\n} else {\n    // Bereich zwischen 71 und 80: Alten Zustand beibehalten (Hysterese)\n    msg.payload = lastState;\n}\n\nreturn msg;\n\n\n\n",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 450,
        "y": 560,
        "wires": [
            [
                "17bd45c1331f1545"
            ]
        ]
    },
    {
        "id": "17bd45c1331f1545",
        "type": "victron-output-relay",
        "z": "b973eec205c3906c",
        "service": "com.victronenergy.solarcharger/0",
        "path": "/Relay/0/State",
        "serviceObj": {
            "service": "com.victronenergy.solarcharger/0",
            "name": "MPPT 450/200"
        },
        "pathObj": {
            "path": "/Relay/0/State",
            "type": "enum",
            "name": "Relay on the charger",
            "enum": {
                "0": "Open",
                "1": "Closed"
            },
            "mode": "both"
        },
        "initial": 0,
        "name": "RS450/Relais -> Solax DRM",
        "onlyChanges": false,
        "roundValues": "no",
        "rateLimit": 0,
        "outputs": 0,
        "conditionalMode": false,
        "condition1Operator": ">",
        "condition2Enabled": false,
        "condition2Service": "",
        "condition2Path": "",
        "condition2Operator": ">",
        "logicOperator": "AND",
        "outputTrue": "true",
        "outputFalse": "false",
        "outputOnChange": false,
        "debounce": 2000,
        "x": 800,
        "y": 560,
        "wires": []
    },
    {
        "id": "8dacb5bc63b60afa",
        "type": "comment",
        "z": "b973eec205c3906c",
        "name": "Switches SOLAX X3 ON when SOC <=80",
        "info": "",
        "x": 440,
        "y": 520,
        "wires": []
    },
    {
        "id": "bc1026fce496d201",
        "type": "comment",
        "z": "b973eec205c3906c",
        "name": "When Battery voltage is at maximum, switches to float mode after a while",
        "info": "",
        "x": 480,
        "y": 80,
        "wires": []
    },
    {
        "id": "bc9cc23e411ddabe",
        "type": "comment",
        "z": "b973eec205c3906c",
        "name": "53,44V = 16 x 3,34V",
        "info": "",
        "x": 730,
        "y": 159,
        "wires": []
    },
    {
        "id": "c44020a251ac8abe",
        "type": "global-config",
        "env": [],
        "modules": {
            "@victronenergy/node-red-contrib-victron": "1.6.60"
        }
    }
]

Hallo nochmal, die Problem mit dem Seplos sind scheinbar hinlänglich bekannt. Andy lässt sich aus über die Fehler und versucht Lösungsansätze aufzuzeigen. Insbesondere die Float-Problematik ist hier ein Thema. Er lösst es mit einem Shunt von Victron.

Ich finde es auch ok, jedoch finde die Note-Red-Idee besser. Habe noch nie Note-Red programmiert, Chatty hat mich schon ermutigt, weiß nicht genau, ob ich mich daran trauen soll.

Viele Grüße

Uli

Hallo zusammen,

ich glaube, ich habs mit Note-Red und Chatty zusammen hinbekommen. Übrigens gabs noch einen Tipp von Helmut SchattenPV, er schlug Battery Safety Controller vor. Ich denke das ist die eleganteste Lösung da Hardware und weitere Sicherungsfeatures enthalten sind. Ich habe im Augeblick keine Lust auf das Gebastel. Wenn jemand einen fertigen Battery Safety Controller hat oder weiß wo zu kaufen, dann wäre das hilfreich.

Viele Grüße

Ulli

So sieht es nun aus, die Spannung wird nach 60 min reduziert. Um die Reduzierung hin zu bekommen, lasst das System "Ampere" ab. Diese Entladung ist leider nicht zu vermeiden.

Float und Ladespannung werden bei der MP2 Konfig eingestellt

Die ist aber außer Kraft wenn im VenusOS als "Steuerndes BMS" ein BMS angegeben wird. Dann zählt, solange die Kommunikation steht, nur was das BMS kommunikativ anfragt/vorgibt.

Jap, das ist so und ergibt ja auch Sinn. Als SOC betrachtet ist ja bei Ladeschlussspannung mehr Energie gespeichert als wenn der Akku auf Floatspannung sinkt. Demnach wird beim Schwenk von Ladeschlussspannung auf Floatspannung erstmal entladen bis sich die Ladeschlussspannung einstellt. Danach schwankt es (bei weiterhin Sonnenschein) immer etwas zwischen laden und entladen hin und her.

Hallo Leute, hab nochmal eine Nachfrage grundsätzlicher Art, wie lange sollte die Absorptionsphase dauern? nach meinem Verständnis nur mal kurz für eine (paar) Minute. Bislang ist es bei mir auf 30 min eingestellt, sehe jedoch keinen Sinn darin. Der NEey muss halt ballancieren können, das sollte jedoch passen.

Oder wie seht Ihr das?

In der Abbildung von heute sind es rund 45 Minuten. 30 Min habe ich bei Note-Red eingestellt. 15 min braucht das BMS für die 100% SOC Meldung (?). und eine zweite Abbildung einer anderen Station

Das kann meiner Erfahrung nach nicht einfach so pauschal beantwortet werden. Es macht durchaus einen Unterschied ob wir vom Frühjahr sprechen oder vom Hochsommer. Genauen Zeitbedarf zeigt hier eine Auswertung der Spannungsdifferenz über die Zeit.

Aus der Praxis heraus haben sich bei unseren sechs Packs 30min als brauchbar herausgestellt. Für die relativ große Differenz der Zellspannungen nach dem Winter reichen bei uns für gewöhnlich drei bis vier mal Vollladen aus, danach könnte die Zeit dann bis zum nächsten Frühjar verkürzt werden. Die Mühe mache ich mir aber nicht.

Durch ein SOC Wert basiertes Herabsetzen der Ladeschlussspannung auf Floatwert bei Erreichen von 100% bis der SOC 70% unterschritten hat werden unsere Packs im Sommer nur alle vier bis fünf Tage wieder voll aufgeladen - statt wie früher jeden Tag.

Ein sehr schönes Beispiel dafür, wieviel (bzw. wie wenig) ein gesundes Pack pro Zyklus braucht