DESS - trade mode scheduler behavior

With the introduction of the new strategy types and reactive strategy some unwanted behavior was introduced.

If the DESS system is configured for trade mode AND the consumption forecast is higher than the solar forecast AND there is no reason to buy or sell, the result is PROBATTERY with IDLE_MAINTAIN_TARGETSOC.

But if the consumption and the solar forecasts are wrong, solar is charged into the battery and consumption if temporarily higher than solar will be taken from the battery. Introducing about 20% losses and battery costs for each kW until you reach targetsoc again after which consumption is taken from grid. Another example is that solar production is high and consumption is very low causing all solar to be charged during very high prices in the hour before the system decides to sell to grid.

In a green mode config this seems a wise decision but in a trade mode config in the Netherlands with buy = sell this is not the correct strategy. In the pre-reactive builds <3.60, DESS would either buy or sell and just stay idle and use grid.

@Barbara would it be possible for the scheduler team to have a look at this please. I have seen the same behavior on the system of a friend but during summer without an EV he hardly ever has a consumption forecast higher than the solar forecast during idle moments. In my case it’s mostly early morning and before dinner. But I’m worried for winter. If no trading opportunity for the day, sunny and cold, consumption forecast will be higher than solar forecast quite often during mid day causing losses on all PV if not consumed directly. Truth be told, in the Netherlands with salderingsregeling, the grid is just a far cheaper battery during those hours.

But if the consumption and the solar forecasts are wrong, solar is charged into the battery

We mainly saw this during PROGRID, where it was not intendet to happen - and here it was was fixed in 3.70~27. The system won’t accidently charge the battery anymore, but feedin & idle instead.

For PROBATTERY it is intended to “not feedin, but increase battery charge to what’s available”. So, if the scheduler picks ProBattery here, he does that, because he sees a financial advantage of doing so. But that is a case-by-case decision that would require individual review.

Generally speaking: The schedule depends on the forecast. If the forecast is not accurate, the selected strategies and decisions may not be accurate.
But that’s inevitable when working with predictions.

consumption if temporarily higher than solar will be taken from the battery.

That is indeed what is supposed to happen in PROBATTERY up to a certain extend. If the SoC raises above target-soc, the system basically sees anything above target as “free to use for consumption”, as it never was part of the schedule and therefore isn’t required to achieve any other soc-goal.

However, you cannot just consider the purchase price at that time to determine if energy should preferably be taken from grid.
You actually would need to compare “purchase price at that time” vs. “sell price of that energy later the day”. If you cannot sell that energy more expensive later, it doesn’t make sence to keep it in the battery. That would cause “grid pull now” and cheaper selling later.

If it would beneficial to do so, then the scheduler would most likely pick a strategy doing that.

And that sometimes is very tricky to see: If selling is already planned for the top-2-hours later, that energy may only be sold in the hour with the 3rd highest price, which then may not yield enough to cover the energy taken from grid in these earlier hours. So, even if there are “high enough” prices later the day - they may already be “fully booked”, so consuming that extra energy makes more sence.

But as said, that is a highly system-individual decision that cannot be answered generally.

1 Like

I don’t think it’s related to the reactive strategy. It’s a cause and effect from the scheduler picking PROBATTERY outside of the planned buy/sell events due to higher consumption forecasts. In trade mode with sell price being even higher than buyprice (dutch Zonneplan provider with bonus) there is no need to use forecast. Only day-ahead price matters. Like I said earlier, every hour that does not have a trade opportunity means that the grid is a far cheaper and almost lossless battery. So the only cost effective answer is stay idle.

And that was the case before the new logic was introduced.

Don’t get me wrong. I get all the complexity involved in scheduling and forecasting for other countries for both trade and green mode. But in the Netherlands, with saldering, in trade mode…. You either trade, peak shave or sit idle. You don’t keep the grid to zero.

Send you a pn. That seems like a “exceptional” contracting model, that eventually is not well considered during scheduling.
Ist that all reflected properly in the pricing, or is (for example) the bonus missing, hence making the scheduler work with inaccurate prices based on day-ahead values only?

Afraid not. Many dutch Victron users have a Zonneplan contract. Question is if they all applied the bonus calculation to their pricing. Still, without the bonus all of the providers in the Netherlands that supply day-ahead based contracts have buy=sell (or with negligible differences). So for all users, if no trading opportunity then just sit there being idle is the best approach.

1/1/2027 it all stops. But that is still far away.

Same problem is happening as I am writing this. Consumption forecast is higher than solar forecast. We’re currently at 0,29 buy and 0,30 sell. One hour before the sell window opens with 2 hours of the highest prices of the day. The remainder will be sold tomorrow morning. Again for prices higher than the current hour.

Due to PROBATTERY all solar is now going to battery instead of grid.

This was the thread I was searching for!

My system is also in trade mode, but I was surprised to find it charging/discharging outside of low or high price quarters (also Netherlands here, buy == sell)

I would expect it to only charge when energy is cheap, and sell when it’s expensive, and entirely ignore any self consumption needs.

But I often see Self-Consume Accept Discharge and Self-Consume Accept Charge as reactive strategies. From a financial perspective that does not make any sense.

Well, @dognose forwarded it to the scheduler team and that was the end of it :slight_smile:

In the mean time behavior is getting worse instead of better as the original post only concerned behavior due to higher consumption forecast. That was highly inefficient but at least did that while respecting target soc for the hour. Now, reactive strategy sometimes also says selfconsume accept below tsoc which makes things far more expensive.

To be honest, posted this twice. I trust dognose has forwarded it. So if scheduler team does not care due to NL pricing being a corner case than so be it. I gave up. Just let the system run.

I am trying to mitigate the problem now by setting the following ESS options.

Self consumption from battery : Only critical loads. As I have very little consumers on my critical load (AC out) this makes sure that self consumption is minimal.

Multiphase regulation : Individual phase. Normally when charging for self consumption it takes all solar production (from 3 phases), now it only takes the solar export from L1.