question

khostri avatar image
khostri asked

Dynamic ESS - battery not charging

I have tried Dynamic ESS node RED flow and on top of my other post regarding settings I have possible issue with battery charging. Not sure if that behaviour is expected or it can be modified, but even when batery is not charged, grid costs are low, there is excess, batery is still in idle state and not charging, but excess is sent back to grid.

My ESS node setting:ess01.png

current VRM:

ess02.jpg

NodeRED Dashboard:
1688636447243.png


Battery capacity is 400Ah (20kWh). although its quite cloudy and rainy today, there is still excess (lower than expected). But it seems that battery SOC is not going higher at all, only lower. This morning Flow was disabled and thats why battery was charged to current level.

I have disabled flow yesterday as in the afternoon it suddenly started to discharge battery into grid even during quite low price. I did some modifications today to configuration values but it didnt helped with idle state.Is it expected? Or is there some modification needed?

ESSNode-RED
ess01.png (8.9 KiB)
ess02.jpg (89.5 KiB)
1688636447243.png (92.6 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.

3 Answers
cpoetz avatar image
cpoetz answered ·

Same problem here. The System is planing to discharge the Battery on the evening, but not charge during daytime.bildschirmfoto-2023-07-07-um-091206.pngbildschirmfoto-2023-07-07-um-091142.png

bildschirmfoto-2023-07-07-um-091838.png


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.

Dirk-Jan Faber (Victron Energy) avatar image Dirk-Jan Faber (Victron Energy) ♦ commented ·

You turned on the DESS between 11-12 AM yesterday. From the screenshot, it is not visible when it was taken.

That does change ‘the analysis’ over the situation because if it is little later in the day, then DESS looks at the next day and sees that there is even lower price that is coming up. So the battery is better left empty.

0 Likes 0 ·
Dirk-Jan Faber (Victron Energy) avatar image
Dirk-Jan Faber (Victron Energy) answered ·

We looked a bit into the data.

Your battery costs are quite large, and using the battery is just not advantageous. This is bit of a harsh truth.

That is why it does not charge during the day. And looking at the logs, it seems that you turned on the DESS between 10-11 yesterday, so that explains why the batteries were charged in the morning. It discharges in the evening because the buy price is the highest at that time.

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.

khostri avatar image khostri commented ·

Thank you for explanation. Great work on flow anyway :)

yes I have turned on chargin manually for that hour, thats why it was charged.

But maybe I have misunderstood what the Battery cost means (as I posted question here: Dynamic ESS - configuration - Victron Community (victronenergy.com))

Is the cost meant to include cost of purchase price and expected life? And for default value how did you estimate that? As purchase cost / (capacity * number of expected full cycles ) ?

0 Likes 0 ·
khostri avatar image khostri commented ·

Tried to set battery charge/discharge price to 0.07 so quite lower than before. But still no charging even today. Slowly SOC is rising but only as part of idle oscilation.

Discharging to grid in the evening - I can understand it.

ess04.jpg

Maybe suggestion from my side or feature request - I think it would be great if there would be additional value (threshhold) of SOC in battery which will take priority. Like you want to have SOC at 70 % preferably (for grid outage). And there would be 2 different modes of operations under threshhold and over threshhold:

Over threshold - like current operation (selling, buying, iddle state, etc.)

Under threshold - setup gridpoint at such value that battery would reach threshold during calculation timeframe (timeframe there are existing published byu/sell prices and PV Yield estimations). Sell battery to grid/buy from grid or use battery for consumption only if comparison price values are double the normal operation values (for example).

0 Likes 0 ·
ess04.jpg (233.4 KiB)
khostri avatar image khostri commented ·

I have made additional test. I think there is some issue with Grid setpoint. Currently I have disabled flow. I have checked during negative price how system works:

Enable grid feed in is false, which is correct.

Scheduled charge for 10 minutes is in place.

Grid setpoint is -9900. And system feeds maximum into grid. So it seems grid setpoint has priority over grid feed in. I have tried to leave flow active, but changed grid setpoint to 0 and it worked as intended until flow rewrote setopint back to -9900.

I dont know how it works internally, but maybe it would also solve that idle battery state. So if grid setpoint would me more dynamic:

  1. If battery is full, grid setpoint would be minimum.
  2. f batery is under SOC threshhold, but grid feed in is true, grid set point would be set to value min+(SUM(Pv yield - consumption)/number of all known hours in sequence ) - (target SOC in kWh -current SOC in kWh)/number of all known hours in sequence) and set battery to charge
  3. if battery is full and grid feed in is false, works normally according to prices
  4. if battery is under threshhold soc and feed in is false, compare prices to buy from grid to fill in battery is buy prices are <0 so setup grid setpoint to value similar to point 2, but to get energy on top of consumption based on estimated yield into battery


battery should take in account maximum charge and discharde values. For additional info - current negative price is with broker fee. Without fee, price is positive. Not sure if its important or not.


0 Likes 0 ·
khostri avatar image khostri commented ·

Dirk-Jan, I have made additional research :)

I have changed battery cost to 0.0870 - (purchase cost)/(8000 cycles * capacity in kWh).

Also I have changed mode to Optimized (With BatteryLife) (active SOC was 65%). In this setup it was slightly better because during discharge into grid, it stopped at active SOC

Battery SOc was very slowly increaing durign whole day, probably as result of high excess, iddle state and balancing peaks.

In the evening, operation was again strange - there was buy price 0.35 in 21-22 period (total buy price), total sell price was like 0.05-0.1 (or something like that). System still used grid for consumption and battery was not used. Even if I take battery cost * 2(charge + discharge) its 0.174. Buy price was 0.35 but system still bought from grid - not sure why.

Today for the test I have change battery cost to 0.04 (your default value). According to visualised graph it seems as the pallned operation is closes to expected - system plans to charge battery at 13 (PY yield still high, sell price very low) and discharde at 19-20. (sell price high)

Maybe isnt there anything missing in calculation formula? Like it works mostly only for default value of 0.04 and as you go further from that price it doesnt work too well.

0 Likes 0 ·
gnagflow avatar image
gnagflow answered ·

Hi, Khostri,

i dont use the node-red flow, i use the dyn ess from the beta-vrm, but have the same issue as you, it doesnt charge the battery, even if at nights the purchase price is much lower than the sales price during the day, even if i changed battery costs to zero.

did you find out the problem or do you have any idea?

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.