Help, my battery storage isn’t reaching full charge despite excess PV


Victron MP II 4K5, 2 Pytes V5 (10.2 kW). The system is configured according to the Victron manual, and the charging voltage is back at 55 V.

Why is the MP no longer charging the batteries, even though 13.6 kW was being fed in?

With Pytes, you should really leave the charging to the BMS. The documents you’re referring to are already out of date.

Use the voltages from DVCC, set the standard LiFePO4 programme via VE-Configure, and let the BMS do its job. I’m sure that will work. One important question: did you let the battery balance during the first charge (with Pytes, this only happens above 56 volts)? If not, set the battery to “keep charged” and wait until the cells are within about 30 mV of each other. Only then enable it again.

Thank you.
I was actually glad to have found this document (Victron + Pytes) that I could use as a guide.

Is there also a document covering the procedure you described?

How and where do I set it to “keep charged” (the 56 V for balancing had not been configured before) — and monitor the 30 mV?

In another post, I asked how I can influence the maximum SOC “from outside” — using Home Assistant. As far as I can see, this is only possible via the charging voltage. But if I no longer have that as a control variable, how can I control the maximum SOC?

After the initial installation in May or June, I reached 100% several times (and far too soon). I therefore reduced the charging voltage to reach a maximum SOC of around 80%. However, I can no longer reach that level at the moment.

The problem is that the documents partly contradict each other. One says that SVS should be enabled, while the other says it should not. If you used this document: https://www.victronenergy.com/live/_media/battery_compatibility:pytes_victron_ve_configure_setting_with_pytes_51.2v_batteries.pdf the voltages on the Victron are correct. There is no document covering the procedure. This is based on experience from many installations. Trying to influence the MAX Soc goes 100% wrong with Pytes (as it does with many other batteries). You cannot determine the current SOC of a LiFePO4 battery from the charging voltage. You also have to fully charge it regularly so that the BMS still knows where it stands. If you don’t do this, you are guaranteed to run into problems (especially if you don’t reach the balancing range in the first place).

  1. Simply remove the voltage limit

  2. In ESS, set the battery to keep charged

  3. In the battery’s “Details” tab, check how the voltage difference between the highest and lowest cell develops (at BMS charge termination).

  4. Wait until the cells have reached a difference of about 30 mV.

  5. In the ESS tab, switch to Normal operation and simply let the BMS do its job (don’t intervene yourself)

After the initial installation in May or June, I reached 100% several times (and far too soon). So I reduced the charging voltage to reach a maximum SOC of around 80%. However, I can no longer reach that at the moment.

With that, you have effectively disrupted any balancing that may have been present from the factory. A very clear statement: don’t intervene …

I followed your instructions, but …

This setting in VE Configure had already been made:


I had adjusted the other parameters and disabled Limit charging voltage (just showing the relevant section here):

The state of charge immediately showed 100%:

After about an hour, two cells had drifted apart by 90 mV.

The voltage was 56.8 V at that point (dbus-spy).


I stopped the whole thing for now. But at the moment, I don’t know what I should do.

How high was the charging current at the time? Looks like there was a lot of sunshine and a high charging current.

If necessary, limit the charging current and set it to “Keep batteries charged” so that the batteries can slowly balance themselves out.

And please also provide the voltage from Venus OS.

The current was negligible!?
You also have the charge current limit set to OFF. Is that specified in any Victron document?

I have Pylontech batteries that are configured according to the Victron instructions.

Just leave the system on “Keep batteries charged” for a few hours.
The first charge, or cell balancing, in particular can take a very long time.

You normally don’t need the charge current limit, but depending on the system or in certain situations it can be useful.
I generally only use it once, during the initial charge, to carry this out at a maximum of 1/10 of the capacity.
After that, you normally don’t need it any more if the BMS is communicating properly with the system.

I’d also leave the other DVCC settings as they are, unless instructed otherwise (or if I don’t know what they do); the important settings are forced anyway.

Just let the BMS handle it. The cells are drifting this far apart because they haven’t been balanced. The balancer isn’t particularly powerful, so it takes a while. Therefore, leave it set to “Keep charged” until you reach around 30 mV. After that, you can let it run normally again (with or without Battery Life), and the balancer should manage to equalise the cells within the absorption time. The battery should then drop to the float voltage. (If it doesn’t, you need newer firmware.)

DVCC should look like this:

If it doesn’t, you have old firmware somewhere here too.

Hello Jens,

At the moment, the cells are around 20–30 mV apart in the “fluctuating (cells changing)” state. Should I still set it to “keep charged”?
Here is a screenshot from the manual:


You have SCS – common current sensor set to ON. What is the reason for this? Don’t both batteries then receive the same current?
Panda Solar also referred to the manual, where SCS is set to OFF…

30 mV is fine and you can enable it again.

-> I’m not the one who enables that; Victron or Pytes does it automatically. Since that isn’t happening for you, you must have outdated firmware somewhere.

Which versions do you have on the GX and on the Pytes?

SCS is irrelevant, as it doesn’t play any role anyway. See the column one further down on your side.

Good question.
On the GX I have 3.75; 3.79 is available as an update. With 3.80, it should also be possible to update the firmware on the Pytes batteries.
The Pytes (via the GX) shows V28.1. But there are two Pytes batteries…
With dbus-spy, I can see a different number?
Pytes told me that you have to read the firmware with the BMSClient…
I’m not entirely sure about the MP firmware, but there was a slightly newer version available when it was installed.


Now I’m back to having the situation where the storage is full by midday and just twiddles its thumbs at 100%.
It should really only be full in the evening and then immediately feed the electricity back into the house!

Pytes can already be updated via the VRM Portal with Venus OS 3.7X, but the Pytes unit needs a certain firmware version for this to work.
As far as I know, it needs at least V33.

Yours, with V28, would first need to be updated locally via cable.

I received a reply from Pytes.


The overvoltage control with Victron was updated in the new V38 version.
You only need to update the host — the slave will then be updated automatically as well.
The latest BMSClient version is 2.1.7

Unfortunately, I’m not seeing this on my production systems. Is it perhaps a beta feature? It would be a real help if this worked.

Yes, introduce from 3.80~21. It is not far from hatching into a production version, should be any day now :crossed_fingers:

Thanks … because Matthias wrote: from 3.7x onward

I cross-checked the change-log, it does not seem to have been included into any of the recent, minor 3.7x releases which have some back-ported fixes to address critical issues.