How to set the charging and discharging time periods?

How to set charging and discharging time periods in ESS assistant?

I have the same question. I have been asking for this function for months ago. We have schedule charge now at it works perfect. If we can have schedule dis- change with the same functions, DESS is not relevant anymore. I believe human are more Clever to make a discharge plan, regards high load from Heat pumps and car charger.
I hope we will have soon.

Hello, may I ask where the planned fee settings are

Another vote here. We have a nice timed charge facility, But there is no way to do timed discharge/export without resorting to node-red so far as I can tell. Obviously one can use DESS but that’s largely a black box.
I’d like to know that I can do simple timed discharge without relying on DESS before switching to Octopus flux (because it will cost money without the timed export. Mostly because I don’t know what DESS will actually do. Maybe it will do the right thing, maybe it won’t.
Seems like it would be a very simple thing to let the ‘scheduled charge’ function have a negative setpoint and be a ‘scheduled export’ function.

I’ve now made this work with node-red, but it was quite a lot of faff tracking down the right info/examples, learning how to use it, debugging, making a dashboard. I feel most people would be a lot happier with an interface like the existing timed charge settings.

node-red-with-dashboards is very cool though - I will appreciate having this flexibility in the long run - this sort of thing was why I picked Victron. But I’m a nerd. A simple knob anyone can use for timed exports would be appreciated by all.

I also vote for scheduled discharging in the same format as scheduled charging. With regular slots some form of allocation of SOC to go down to for the same number of timers as the scheduled charge has.
Am “Export Boost” button for increments of 15 minutes of “discharge now” to selectable SOC would also be useful.

Under scheduled charge in ESS you can now set priority use, such as pv or battery or both and set different levels of battery soc for each period.

Is it (still?) advised not to use scheduled charge settings in combination with DESS?
If so, could you elaborate a bit on why?
If not, are there any specific limitations that need to be taken into account?
System is:
MPII5000GX trade only (no solar)
1000Ah/44kWh 12S Li-NCM batterybank
40A/9kW dynamic price grid (tibber)
8kW boost charger on out2

I just tested setting scheduled charge SoC to 100% on a DESS trade system but apparently nothing happens.
‘Scheduled charge levels’ are flagged ‘inactive’ in gui-v2 ESS settings despite being in an active timeslot.
Is this ‘by design’?

Ah yes. Sorry i forgot about the DESS confilct.

They can’t be used together as they both try to decide when its time to charge and discharge.

If you don’t relaly have energy meter integration for prices though DESS doesn’t make sense.

Would you mind sharing the node red code for this please? Just about to start to have a go with this myself.

Sure. I would attach it but .json files are not allowed. I’ve put it in my ‘victron’ git repo at victron/.git - Wookey's Victron stuff. You can check it out with
git clone ``http://public.wookware.org/cgit/victron/.git
The file is also here, but this one won’t get updated, and will be tidied at some point.

https://wookware.org/files/flows20251221.json

Woah, it’s pretty big! It’ll take me a while to get to grips with that but looks really good.

Thanks a lot!

It probably needs some notes for someone else to use. The fundamental design is that all the controls set flow variables.

The variables are used in the main logic function ‘consolidated export control’, because (almost) everything boils down to ‘how much are we importing or exporting right now’ - i.e what is the grid setpoint.

The flow supports DC coupled PV and AC coupled PV, with a meter on the AC coupled inverter. I have an older version that works when there is no AC meter (by estimating the AC PV relative to the measured DC PV).

You can:

  • set a scheduled import during the cheap time at a specified power level, stopping when specified SOC is reached
  • set a scheduled export during the expensive time at a specified power level, stopping when specified SOC is reached
  • enable/disable grid export of any excess power when the battery is full (SOC level that counts as ‘full’ is specifieable)
  • export during daytime to be a specified fraction of current generation
  • set immersion heater on/off (actually the cerbo relay1)

Status info is shown for current SOC, current total generation, current charge rate, how many kWh till full, how long it will be till the battery is full (or that it is currently discharging) , current home consumption. AC and DC generation separately, time.

There is a solar forecast section in there but I failed to get that to work so far (I get API errors) so either ignore (or fix) that part.

The controls are:

Import:

  • Import now to force import right now at the power level on the ‘input power’ slider.
  • Enable scheduled causes import at the power level on the ‘input power’ slider between 2am and 5am (flux tarrif hard-coded), until Max import charge SOC is reached then stop. (one day max import charge SOC will be set by the solar forecast, but currently it’s manual)
  • Import Power sets the import power level used by the above controls. It goes up to 10kW but my inverter/charger is actually limited to 3.6kW. The system self-limits if you set it too high. The ‘headroom’ is useful during ‘free electricity’ hours so you can set inverter to full-power import/charge even when it is sunny.

Export

  • Export now to force export right now at the power level on the ‘export power’ slider.
  • Enable scheduled causes import at the power level on the ‘input power’ slider between 4pm and 7pm (flux tarrif hard-coded), until Max import charge SOC is reached then stop
  • Auto Export when full. If enabled, export any generation above current consumption once battery reaches set SOC (Battery ‘Full’ Level). If not enabled system will keep charging until 100% SOC before exporting.
  • Export PV% set export to be configurable fraction (PV export fraction) of current generation (between 7am and 4pm)
  • There is code for an enable battery balancing knob too, which adds 250W to the current import. The idea is that it provides some current to top off the pack for balancing, but at least on my system it doesn’t because once the battery sets CCL (charge current limit) to 0, charging current is entirely inhibited.
  • Current setpoint shows what import (positive values) or export (negative values) is being asked for
  • Actual grid power (import +ve) shows what import/export is actually occuring right now. This should be similar to Current setpoint, but there are circumstances when it will differ, and it will take a few seconds to change after the setpoint changes.
  • Battery ‘Full’ level set SOC% used by Auto export when full to control what level charging stops at (and excess generation is exported instead).
  • Min discharge SOC sets level at which scheduled discharge stops discharging, to ensure enough battery to run on overnight.

Status

  • SOC %: Current state of charge
  • Total PV (W): Sum of current AC and DC-coupled generation
  • Battery charge rate: Current rate of battery charge (+ve) or discharge (-ve)
  • kWh to full: How many kWh until battery is full. Change batt size in ‘Time till Full’ function (and ‘convert to kWh unfilled’ node).
  • Time till full: How many hours until battery will be full (when charging). When discharging it says ‘Discharging’.
  • Consumption (W): current household power consumption.
  • AC PV Power (Fronius): Current AC-coupled PV generation
  • DC PV Power (Victron): Current DC-coupled PV generation
  • Time self-explanatory
  • Hot water immersion: state of Cerbo relay1

Notes

This code has not really been designed for external use. The design is moderately clean, but some things are currently hard-coded: such as battery size and flux tariff times. It wouldn’t take much work to make it more generalised. Patches welcome.

There is a 2nd copy of the ‘consolidated export control’ node. This is so that you can be using one version and messing with another. It’s then easy to connect up the new one for testing, but still have the old, known-working version to go back to quickly. This is very handy when working with a live system as it’s easy to write code which does the wrong thing!

There are various settings in ‘consolidated export control’ such as DNO export limit, and zerosetpoint which you might want to change. zerosetpoint is -30W so the system reliably avoids importing power.