DESS not scheduling 100% SOC in Green Mode

Hi all - we have DESS configured in Green Mode, under a simple peak / off-peak tariff scheme. We noticed DESS usually tries to target 100% SOC by mid-day, which we believe is the correct behavior.

However, VRM sometimes schedules “too much” self-consumption into the off-peak hours, such that 100% SOC is not reached the the following day. Please see some charts below and notice the “tomorrow” chart not reaching 100% SOC.

Is this expected behavior?

Yesterday (100% SOC reached):

Today (100% SOC planned)

Tomorrow (81% SOC planned)

Well, if there isn’t enough solar to reach 100% (and buying from grid is not worth it / not required) what else should it do? Enforcing a 100% SoC tomorrow would then require some battery idling during the night, which causes guaranteed grid-pull. And then, there is a “risk” that there is more solar or less consumption than expected, and you unnecessarily bought from grid during night.

Basically, with your prices the reasoning is quite simple:
Your system needs enough SoC to cover 12 to 20 consumption - anything else doesn’t matter as the grid price is the same.

And the schedule for tomorrow expects 70% at 20, so there is no need to save/buy additional energy for the 12 to 20 hours.

1 Like

Thanks for the reply here @dognose That all makes sense, though I’m a bit confused why that behavior isn’t consistent across all days.

For example, we’ve had sunny weather for the past week or so, and the system has regularly decided to buy from grid starting at 20:00 (rather than self-consuming into the off-peak hours). Our current “min SOC” is set to 40%, and you can see the system remained above 60% SOC overnight the past 2 days. Last night, you can see there was intermittent grid-pull, but the night before you can see consistent grid-pull.

Though I guess it is possible the PV forecast could have changed, or the PV/consumption forecasts were slightly off. I am probably misunderstanding something… thanks for taking the time.

When we set “min SOC” to something quite low (e.g,. 15%), DESS ends up slowly drifting the SOC down towards the min SOC. So the system ends up living around ~15-50% SOC for weeks, depending on season, until a balancing charge is scheduled.

In the spring, we can gain +85% SOC via a single day of PV, while self-consuming – though in the summer, we can only gain +30-40% SOC while self-consuming (assuming a sunny day in both scenarios).

Phrased another way, what’s the best way to keep the battery “near full”, while still self-consuming as much as possible and optimizing for off-peak pricing? Would I need to manually adjust “min SOC” depending on season?

That are good questions, and basically the same for every green mode user.

For the balancing part: I usually set scheduled balancing to 10 days during winter. In Summer a new feature was added as well, called “opportunistic balancing”. That is, if the system notes a super good opportunity to balance (high solar, low consumption, super cheap grid) it can go for balancing earlier than the schedule and consider it done for another 10 days.

That greatly avoids balancing to potentially fall on very bad days, where you then need to buy 80% SoC from grid at potentially high prices.


Your observed idling mainly depends on solar and consumption forecast: When you look at your prices, from a scheduler point of view, there is basically a single truth:

It is always preferable to use battery from 12-20 today and tomorrow. So, planing at any time should favor to use battery in these hours, and let energy be taken from grid 20-12 if there isn’t enough solar to cover all.

How big is your battery?

What I would probably do in your systems case:
I would fake “half a cent” cheaper buy prices from 10-12. Then, any planed buying from grid should take place in these two hours, guaranteeing that as much solar as possible has been charged upto that point, and even during these 2 hours, all solar eventually available will be charged for sure by contributing to the charge rate with whatever is possible. (Or raise the hours 20-10 by 0.5, to get actual purchase prices, when charging is done 10-12; if two hours are not enough, make it 9-12 etc)

That should greatly reduce any (eventually false positive) idling during night, because the scheduler kinda would think:“No matter what, the cheapest opportunity to buy is right before peak-prices anyway”

We have a 60kWh pack, supporting 4x 10k Quattros.

This larger system size also seems to impact the schedule meaningfully between 20:00 and 12:00, given the Quattro’s are consuming ~500W while idling. Since VRM doesn’t “know” about this idle consumption, the schedule / SOC plan drifts even though the consumption forecast is accurate. Of course, VRM updates the plan every hour to “catch up”.

There’s another thread where someone requested a feature in v3.70, to permanently disable “peak shaving” in systems that don’t need it (to reduce idle consumption significantly): Bug?: Peak shaving drains battery permanently despite minimum SOC - #16 by JeroenSt

But that is another topic, though I’m hoping the feature is introduced.

Interesting idea! I just adjusted the logic to introduce a “0.005” discount to the buyPriceSchedule from 10-12. Our utility publishes day-ahead rates at end of day, which we scrape into VRM via Node Red (and apply to the next 6 days for simplicity). I’ll see how this affects the schedule.

This makes sense. For a tariff scheme like ours, do you think turning on BatteryLife would cause any strange effects with DESS in Green Mode? Again, with the goal to maintain SOC at a higher level, throughout the seasons.

As a quick follow up here (2 days after my post above):

  1. DESS planned to self consume all day, including all off-peak hours (as seen above).
  2. This self consumption would cause the following day’s’ max SOC to reach 80-90% (not 100%)
  3. Once we got to evening off-peak hours, the system started oscillating between idling and self-consumption (changing the plan from self consumption).
  4. These oscillation seemed designed reduce self-consumption during off-peak, so 100% SOC could still be reached both of the following days.

Does this make sense? I like that Green Mode reached 100%, though not sure why the system “changes” the plan once we got into the off-peak hours.

The PV forecast didn’t really change much throughout the day. I also introduced the 0.005 discount before peak hours.

Day before yesterday (same day as original post). No idling was scheduled between 20:00-23:00 when I posted above, but we see the system changed the plan when we got to those hours.

Yesterday The system was planning on fully self consuming all day, but we can see idling sporadically throughout the night. Eventually this resulted in the max planned SOC changing from 80-90%, up to 100%.

Today Same story as yesterday in the early morning. Tomorrow is a low PV day so the system is planning in idling this evening to save battery, and is planning on briefly self-consuming before sunrise tomorrow (reaching 100% SOC mid-day tomorrow).