rrroonn avatar image
rrroonn asked

When scheduled charging just does not cut it

If you don't like paying any more for power than you have to, but like to keep your batteries topped up, then you may have looked at scheduled charging via ESS. Once you have tried it, you will realize that it has a major shortcoming - it will prevent your battery being drawn down until the end of the charging time even if the battery has reached desired SOC.

I will provide an overview of how I got around this but please do not expect a complete recipe as each person's situation is different.

My scenario is this: I want to charge my batteries via solar and only charge the batteries at the end of the day if the sun did not hold up its end of the bargain. That way, I will always go into the night with charged batteries. I keep 40% SOC reserved for power outages and generally use 40% SOC overnight. Thus I like to have at least 80% in my batteries. This allows me to wake up to a SOC no lower than around 40% if the grid failed early in the night - giving me time to sort out the problem or run up the generator after a coffee and decent breakfast.

I am using a Color Control GX to run the Victron side of the system but also have external home automation which I use for the majority of my measurement and control requirements. The main elements are (1) Home Assistant (2) Node Red and (3) MQTT server. These are all running on a device separate from the GX, though I understand that I could use the GX for all of these requirements.

I use Home Assistant (HA) to provide the user interface and much of the data management. I use Node Red (NR) for automation and some data manipulation. MQTT is used as a data interface and for triggering actions.

My key element of the solution is the use the ESS AC "Set Point" to control charging.


In HA, I have a variable for SOC_target_percent (Charge Until) and a button to manually start a charge. The button triggers a flow in Node Red (explained later). Also in HA, I use the modbus integration to communicate with the GX device on TCP port 502 for control purposes. Turning the switch 'on' sets the AC "set point" to 3500W (a value I chose). Turning the button off, will change the AC "set point" to 10W - effectively stopping charging.



In NR, I have a flow that takes the button trigger from HA and translates that to the modbus messages that are needed to provide the desired outcome. This is fed back to HA to send via the modbus integration. (See note 1).


The current battery SOC% is monitored (from HA via MQTT) and if charging is underway, the current SOC% is compared to the target % and the charge cycle completed if the target is reached.

I also have a timer that triggers at 4pm and will start the 'manual' charge cycle with a target SOC% of 85% if the battery is not sufficiently charged.


The result is that I will always have the batteries topped up to (at least) 85% at the end of the day. Solar panels provide the charge most days. On the rare day that we don't get enough sun, then the AC charger in the Multiplus2 tops up the batteries and I don't wait until the end of a "charging window" to start drawing down on the batteries.

I have provided the NR flows involved for reference (as a JSON text file). Note it relies on a "timerswitch" integration and a "home-assistant" integration.


Note 1. Node Red has a modbus integration that can be used directly. However, I have found it to be unstable and am much more confident with the integration available in Home Assistant.

Note 2. All this could be avoided if the GX allowed you the option to 'complete' the charging cycle when SOC is reached, rather than keeping the charging window open until the scheduled amount of time has elapsed.

flows (1).json.txt

Multiplus-IIbattery chargingVenus GX - VGX
nr1.jpg (90.1 KiB)
home-ass1.jpg (19.4 KiB)
flows-1json.txt (12.7 KiB)
2 |3000

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

1 Answer
wkirby avatar image
wkirby answered ·

This is extrmely useful. I am a HA user too. I'm planning to switch to an agile tarrif in the near future where having the ability to control charge and discharge windows will be imperative.
Thank you.

2 |3000

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

Hi @WKirby Scheduled charging is a little lacking in functions.

Not sure if you did move onto a agile tariff, but there is another issue to be aware of, initial problem here by @kempza

Basically if there is a large power drain requirement during scheduled charge two things will happen in an ESS:

  • Inverter will run and discharge batteries
  • Batteries will not charge

I try and make use of as much off peak power as possible (a 7 hour window in the early hours). In the winter I'll charge my storage fully. However I also have an electric car, when I charge it (at 7kW) my storage is completely exhausted and not replenished even if scheduled charging is configured.

It's a real pain, I normally end up limiting the charge to the car so it finishes in time to charge my storage. It also increases the number of charge and discharge cycles on my lithium batteries unnecessarily.

I don't want any storage drain during scheduled charge, like it says on the tin... Just hope this gets fixed in software/firmware soon.

0 Likes 0 ·
I have not yet switched to agile. The network representative came to my premises and he installed a smart meter. I now have a very very low tariff for 4 hours in the early morning.

Scheduled charging works well for me, charging the battery at full power (1750W) and supplying the loads, so the system is taking 2100W from the network.
My little MultiPlus does not charge with enough power to fully charge the battery on most days during these winter months, so I am yet to experience what happens if the battery gets full during the scheduled time.

0 Likes 0 ·