question

kupo avatar image
kupo asked

How to set SOC charging target other than 100%?

My system has 2 Smart Li 200Ah batteries, Multiplus 3000/120, 2 MPPTs 100/30, connected via BatteryProtect, Alternator connected to AGM, and via Cyrix Li to Li batteries. Setup includes BMV-712 Smart and Venus GX.

I want to be able to charge the batteries to say 60% or 80% only while on shore power, knowing that I will have plenty of sun for the rest of the day.

How can I set an SOC target for the Multiplus, or better via Venus GX? I don't want to change the absorption/float voltages.

MultiPlus Quattro Inverter ChargerVenus GX - VGXSOC
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

5 Answers
tozz avatar image
tozz answered ·

AFAIK you can't using anything build-in. It always charges to 100%. Only solution would be to change voltages.

You could achieve this with some additional scripting on eg. a Raspberry Pi. You can read SoC from Modbus and then set the Multiplus to Invert only, again using ModbusTCP. Maybe using MQTT (which might be easier) as well.

If you are confident with Linux you might be able to script something on the VenusGX device itself, by creating a script on the device itself.

If you don't have any scripting experience you could probably use something like Node-Red on a Raspberry Pi for this.

Please do note however that 100% might not actually be 100%. For example, I use MG batteries with 4.2V cells, 7 in series. That's 29.4 volts (or 58,8 in 48V, 2 parallel). However, my BMS says they are at 100% SoC at 56V which is 4.0 volts. So there is 0.2V per cell of spare capacity, which is 5%, or 95% SoC


4 comments
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

kupo avatar image kupo commented ·

Tozz, thank you. Yes, I had not seen anything built-in. But I also did not know that you can control the Multiplus via Modbus TCP or MQTT. I could do either, as I already run a RPi for data logging.

But, I forgot to mention that I also use a VE.Bus BMS. It seems that turning the Multiplus charger on and off is disabled in this case ...

0 Likes 0 ·
tozz avatar image tozz kupo commented ·

Nope, it still works. I set my MultiPlus-II to 'Charge only' when my EV is charging, so it doesn't start inverting when there is a little shade over the panels. I am also using VE.Bus BMS (Lynx Ion BMS)

Here is some (working) example code:

from pymodbus.client.sync import ModbusTcpClient

client = ModbusTcpClient('192.168.178.182',502)
connection = client.connect()

# Fetch SoC
request = client.read_holding_registers(address=843, count=1, unit=100)
soc = request.registers

# 1 = charge only, 2 = inverter only , 3=on, 4 = off
if soc > 70:
  rr = client.write_register(address=33, unit=227, value=2)
if soc < 65: # Dont turn on at 69, prevent hysteresis
  rr = client.write_register(address=33, unit=227, value=3)

0 Likes 0 ·
tozz avatar image tozz tozz commented ·

Obviously you can improve this script by checking if you have shore power (should be available using modbus as well). There is an Excel list somewhere on the victron website with all the addresses.

0 Likes 0 ·
coolzeroptg avatar image coolzeroptg tozz commented ·

I try to use this but wen my multiplus is in inverter only mode it not start inverting wen the system starts using energy from the grid. The multiplus only do that if I select on mode.

I think it is some wrong, but I can't find it.

0 Likes 0 ·
Vance Mitchell avatar image
Vance Mitchell answered ·

One option that might be able to work for you is using assistants in the multiplus.

If you use the charge current control assistant triggered by the aux input, and connect the aux input to the relay in the BMV you could adjust the multiplus charge current to minimum once a certain SOC is reached. You would adjust the SOC point in the BMV relay settings.

Using this method wont limit your solar or alternator charge but will allow a preset SOC to be reached before disabling the charger in the multiplus.

2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

JohnC avatar image
JohnC answered ·

Hi @kupo

Another way would be to use the generator start-stop Assistant in the Multi, but instead of just outputting a signal, have it shut off ACIN. Then you'd be totally offgrid, with loads coming from the batteries.

The GX generator functionality could be used too, as it may be more convenient to make changes. Then you'd run a signal wire pair across to the Multi, which could deal with that the same way.


2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

kupo avatar image
kupo answered ·

@Tozz, @Vance Mitchell, @JohnC,

Thanks for the responses. I like particularly the idea of using the BMV relay because its settings can more easily be changed via VictronConnect. It has to be easy to make sense what I am trying to do. Digging a little more brought me to this link which explains how to do this:

https://www.victronenergy.com/live/dc_coupling:using_bmv_soc_in_a_vebus_assistant_setup

But I have to confirm that the assistant supported ACIN control also works in a system with VE.Bus BMS.

1 comment
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

tozz avatar image tozz commented ·

It should work, given that the documentation link you mention specifically mentions VE Bus BMS:


"This can be very useful for DC connected solar energy systems where the VE.Bus SOC is not accurate."

0 Likes 0 ·
hackett avatar image
hackett answered ·

That’s why I only change the chart limit from the phone app. And if you have your display set to energy you can easily stop it at any % you desire.

Weird thing is you can not set it to 89 or 91%. It jumps from 88 to 90 and 90 to 92.

But agreed this needs to be improved.




MyAARPMedicare

2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.