article

Dirk-Jan Faber (Victron Energy) avatar image
Dirk-Jan Faber (Victron Energy) posted

CLOSED - Dynamic ESS on Beta VRM - part 3 (use new topic please)

Update 2024-01-19: This article has been closed for further comments. The follow up article can be found here.

2023-12-6: Important note

  • In case your system setup has heavy loads (EV charger, heat pumps) in front of the Victron system, there is a chance that the total load of the system exceeds what your main fuse can handle, causing it to break. See here for more information on this.


2023-12-06: Restricting charging from grid

  • The system now determines when it makes sense not to charge the battery from the grid. Based on that, it will enforce a restriction on not charging the battery from the grid. This can no longer match all hours of the day and this fixes the bug for systems with a low sell price where the charging from the battery always got blocked.


Dynamic ESS on Beta VRM - part 3

Hereby I present another update considering the current state of Dynamic ESS and VRM.

One of the more common complaints we received was that in cases consumption- and solar-forecasting did not match the actual usage or yield, this resulted in extra grid usage by either charging from or discharging to the grid. This could result in the system to use expensive grid power on moments that the energy prices were high. Our simulations do indicate that penalizing the grid is cheaper than penalizing the battery in the long run, but that does not mean that it should be like that for every hour. Especially when the grid energy is expensive, this is most certainly not the best option.

image.png


In order to mitigate this problem, we decided to re-use the global restrictions that we already implemented to follow the German regulations, but use these at the schedule level. Whenever the buy price is considered high, we set the restriction “disable charging battery from grid” for that hour. Then comes the part of deciding when the price is considered high. At the max buy price of the day, the system enforces never to charge from the grid. The other scheduled restrictions look at more factors to determine if it makes sense to charge from the grid. If it does not make sense, it enforces that by setting the restriction.


This system became effective on Node-RED since yesterday’s v0.1.10 release and effective on beta VRM this afternoon for systems running the latest candidate release of Venus OS (3.20~30). There are still more improvements to be made and we keep working on ways to further improve the system. That being said, we almost feel ready to move the system from beta VRM to VRM. Before we do that, we still need to do a bit more testing and add these restrictions to the release feed of Venus.


For those of you who missed the original posts, and wonder what this is all about. Dynamic ESS is an algorithm that aims to minimise the costs made on the grid and battery. Please check the two previous posts on the subject for further information.

You can get started with it on beta-VRM via Settings → Dynamic ESS.

There is a concept manual. All feedback can be provided below.

Note that Dynamic ESS applies mostly to countries in Europe that work with so-called “day ahead pricing”. For fixed priced contracts, the VRM version can also be used outside these countries.

For those of you who aren’t familiar with beta VRM, you can log in through this link with your normal credentials.

A webinar about this subject has been held on the 26th of September. The recording of the webinar can be found on our YouTube tech channel: https://youtu.be/YU9jXyfM-eI


ESSdynamic essbeta
image.png (60.1 KiB)
227 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.

ronaldt avatar image ronaldt commented ·

It looks like the system wants to follow the set SOC target all the time. So when I use less energy and it was predicted to be more and the SOC target was therefore lower, the system starts to dump energy to the grid. But the price is not high at the moment and I rather use thid saved energy to load to the grid when the price is higher.

The picture below shows the SOC targets. My current SOC is 47% and it seems to aim for 45%. I am hardly using energy so it ofloads with about 1500W from the battery to the grid now. When you look at the price (top left) it is clear that later in the day the price is higher and it is therefore more beneficial to save it now and use later.

schermafbeelding-2023-12-01-om-140755.png

The impact on charging the car on the prediction iis gigantic. This is the prediction after 4 hours planned charging. It totally invalidates the prediction as near the truth.

schermafbeelding-2023-12-02-om-060543.png

Between 10 and 12 there was solar energy available. The DESS decided to send it to the grid and the target SOC (24%) remained unchanged. Probably because there is not much difference in the price at that moment and later in the day. Therefore is is (with the cost of the battery taken into account) better to offload directly to the grid. But.... it is even better to store it in the battery and use it later for my own consumption. It seems that this scenario is not taken into account?!

schermafbeelding-2023-12-02-om-162351.png

3 Likes 3 ·
grua avatar image grua commented ·

Is there a way to parameterize the efficiency of the battery? My 48V battery, which is AC-coupled via Multiplus II, shows approx. 15% .. 20% losses from charging from the grid to being returned to AC, i.e. over all efficiency 85 .. 80%. For example 10% loss at charching from grid and again 10% loss from DC back to AC.

What level of efficiency does DESS calculate or can it be parameterized?

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

At the moment we calculate with an efficiency of 85%. This setting cannot be altered yet via VRM, but can via Node-RED (where we first test most stuff before putting it on VRM).
It is the `Settings/DynamicEss/SystemEfficiency` variable under `com.victronenergy.settings` dbus service.

1 Like 1 ·
Henrik Känngård avatar image Henrik Känngård commented ·

I’ve been using DESS since the start a few months now. And for most of the time it has been working fine, with a few exceptions and some behaviours which I would like to be evolved.

But the last few days it has really been working strange. When I look at the consumption forecast for the day early morning it looks like almost no consumption at all, meaning the batteries won’t charge during cheaper periods on the night. But then later in the morning the forecast change and looks normal again. But this then means all power will be taken from the grid during the day, even if the price is much higher than during the night. Is this a known bug or something you perhaps need to check up?

The things I would like to evolve is the possibility to avoid purchasing power during high prices, as it works today the system takes a certain amount of power from the battery, but if consumption is higher than forecast for some time, the system purchase power from the grid. I would rather use this power from the battery and instead use less power from the battery when consumption are lower again. Is this perhaps also something you know about/working on?

It would also be very nice to be able to control the relay(s) on the GX or other devices with the DESS, this to control high consumers like heating to only be in use when price is low.

With all this said, great work to have this function in place!

2 Likes 2 ·
ojack avatar image ojack commented ·

"We defined it as the hours where the buy prices exceeds ( the sell price minus the battery cycle costs )."

But this is the case everytime in Germany because my sell price is constant 7ct/kwh and i define my batterycost = 1ct/kwh. It would be the same even if i would make batterycosts to 6ct/kwh.

But i think it would have been a good idea to load the battery from 3 to 5 in the morning because it was the lowest price for today and battery is empty at the moment and very low pv forecast.

1701249013472.png

1 Like 1 ·
1701249013472.png (19.4 KiB)
Dirk-Jan Faber (Victron Energy) avatar image Dirk-Jan Faber (Victron Energy) ♦ ojack commented ·

You are right, the battery still should be charged at that low point. We are aware of this and are working on an improved solution, which should no longer restrict those low hours.

As soon as that improved solution is in place, I'll update the main article with more details.

4 Likes 4 ·
daniel-feist avatar image daniel-feist Dirk-Jan Faber (Victron Energy) ♦ commented ·

I have a similar issue, but the opposite:

Today, in the U.K., between 4.30-6 pm export is paid at almost €5. DESS created a schedule that filled batteries overnight on cheap import tariffs and planned to discharge as much as possible between 4-6 pm (no half-hour support yet). But, given it's cold and the (electric) heating has been on usage has been higher than forecast. This means that at 4 pm the battery is estimated to be at only 45%. I'm pretty sure before this latest change it would have been 100% at 4pm, but this change means it won't be. It's interesting as in most cases I wouldn't want it to punish the grid, but in this case where export is so lucrative it makes sense...


1701437221626.png


1 Like 1 ·
1701437221626.png (111.8 KiB)
Michelle Konzack avatar image Michelle Konzack ojack commented ·

Interesant.


You do not sell for the Bourse price?

When I was living in Offenburg and Freiburg 8 years ago and there was no option to sell for a fixed price. ONLY Bourse price.


Your 7¢/kWh would mean, you earn money as hell in the summer, while i got only 0-4¢/kWh. Contract was RWE and EnBw (both real Mafia)

0 Likes 0 ·
ojack avatar image ojack Michelle Konzack commented ·

The key word is EEG (renewable energy law).

You are guaranteed remuneration for 20 years from the date of commissioning. When commissioned in 2023, that will be 8ct/kwh up to 10kWp and 7ct/kwh over 10kWp. But this process has been around for a very long time. Only the amount is reduced regularly.

https://www.sfv.de/lokal/mails/sj/verguetu

And yes, all Mafia ;-)

There are over 800 distribution network operators in Germany, all of which make their own (technical) rules and set their own fees. Totally bureaucratic and stupid. Electrons don't have different properties depending on their location. *lol*

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

It took a bit longer than I had hoped, but now the logic changed for determining when not to charge from the grid. At the max buy price of the day, the system still enforces the system never to charge from the grid. The other scheduled restrictions take more factors into account, fixing the bug when the sell price is always low.

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

Thanks, I'll give it a try tonight. It schedules to load 10kWh at 3:00-5:00

0 Likes 0 ·
ojack avatar image ojack ojack commented ·

It was a little better but not as expected and not as scheduled in the evening.

The system loaded only 5kWh (from minSoC 40% to 62%) to battery from 4:00-5:00 and at the moment it's still using grid for the loads although buy price is 5ct higher than tonight and my battery costs are only 1ct/kwh.

And because it hasn't charged enough, it has to use the grid again from 4 p.m. even though the purchase price is still very high.

1701931410252.png

This was the battery power tonight. It started charging at 3:00 as it was scheduled in the evening but stopped a moment later.

1701932222770.png

0 Likes 0 ·
1701931410252.png (66.2 KiB)
1701932222770.png (31.6 KiB)
ojack avatar image ojack ojack commented ·

@Dirk-Jan Faber (Victron Energy)

And now feeding 500W into grid. That's not an acceptable behavior for me.

1701939957522.png

Maybe because of the high consumption forecast at 10:00. But this should not lead to feed in at a price structure with buy 35ct and sell 7ct.

1701940206766.png


0 Likes 0 ·
1701939957522.png (80.2 KiB)
1701940206766.png (131.4 KiB)
Dirk-Jan Faber (Victron Energy) avatar image Dirk-Jan Faber (Victron Energy) ♦ ojack commented ·

Thanks for the feedback. We just took a closer look at your system to analyse what is going on and what might be causing it.

The plan of the system was to charge between 3 and 5 (which we see on our system in the red circle). As soon as the green bar is high (to battery) and the yellow bar is low (from grid) the system wants to charge from grid. On the lower half of the screenshot you can see battery SOC logging, mainly the blue one being the SOC, and the green and yellow being the targeted SOC. The SOC typically follows the green/yellow line during the hour. Also the green and yellow line are almost always identical.

On your system, the green and yellow lines don't match, the target SOC got a new value just after the being set higher, which should not happen (or at least not in such a big jump). So our first guess was that this is some kind of bug.

When examining your system in more detail, it turns out that, besides having Dynamic ESS running from beta VRM, you were also are inserting schedules via a custom Node-RED interface. And as we all know, you cannot have two captains controlling the same ship. So that seems to be the cause for the behavior.

We looked at another comparable site in Germany that only had the VRM interface running and that one did charge nicely according to plan. See the next screenshot.

1701946250088.png
1701946956154.png

0 Likes 0 ·
1701946250088.png (213.3 KiB)
1701946956154.png (102.9 KiB)
ojack avatar image ojack Dirk-Jan Faber (Victron Energy) ♦ commented ·

Hello Dirk Jan,
thank you very much for the analysis. Of course you are right. There is the remnant of a Node-Red attempt to recharge the battery at night. I had completely forgotten that I had set quick&dirty the loading time at 3:00 to 0s to deactivate that instead of deactivating the flow completely. Obviously this stalls the DESS loading process.
So next night another try. This is the schedule for tomorrow. Just as I would expect.

1701957120343.png

I'll report...

Best regards

Olaf

1 Like 1 ·
1701957120343.png (58.3 KiB)
ojack avatar image ojack Dirk-Jan Faber (Victron Energy) ♦ commented ·

Hello @Dirk-Jan Faber (Victron Energy)

another thing to complain about is solar to grid. I think at this price structure it's never a good idea to feed in solar to grid when battery is not at 100% SoC. All solar should be directly used or stored in battery.

Maybe include a switch "feed in solar only at SoC > 95%" in the settings.

1701959080913.png

And why is the system buying from grid now (15-16:00)?

The buyprice is high now and will drop in about 25minutes. battery could easily cover the loads for the next hour until reaching min SoC 40%.

1701959713195.png


1 Like 1 ·
1701959080913.png (83.5 KiB)
1701959713195.png (78.4 KiB)
Dirk-Jan Faber (Victron Energy) avatar image Dirk-Jan Faber (Victron Energy) ♦ ojack commented ·

When looking at our logs, the last time that the Node-RED implementation queried for the data was at 15.38. So it might be that was causing it. Otherwise we could not find a direct explanation for it to buy from the grid during that time. So it could be a bug, but we are just not sure. If it does happen again, please do let us know (and I know you will).

Considering general rules not to feed solar into grid when the battery is below 95% of charge. The system should already do that, based on the pricing of your site. There are other sites around (where the sell price is high and where you are allowed to sell stored energy to the grid) that would complain if we added such a general rule. And we don't want the system to have rule upon rule upon rule, making it even harder to debug taken choices.

As far as I can tell, at the moment your site looks like it is planning to follow a real nice schedule for today with no unexpected things.

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

There are some things to add regarding your site right now, which I'll explain.
On point 1, you seem to have solar yield during the night. That turns out to be a CG EM24 Energy Meter pretending to be an inverter that logs that yield at night (instance 40 to be exact).
At point 2 the grid got used during high price (because of higher than expected consumption). This is something that we are working on improving. Which we'll expect somewhere early 2024 to have tested and deployed.
The third point is in fact an error in the graph. It should have colored it as "solar to grid" instead of "battery to grid". We've already got an issue open on fixing that as well.

1702045000148.png

0 Likes 0 ·
1702045000148.png (185.1 KiB)
ojack avatar image ojack Dirk-Jan Faber (Victron Energy) ♦ commented ·

Wow, now you were faster than me ;-)
First of all, I have completely deactivated all flows that write any signals.
Point 1: You're right. There is an EM24 Ethernet that records a PV. I currently don't know why it has an offset of 3-4W. But I think that's not a big problem.
Charging the battery at night now worked perfectly.
For point 2, I like to try your optimization if available.
Regarding point 3: Is it really just a labeling problem in the graphic? Today I observed that when there was little PV, I could definitely see a feed-in that was greater than the PV output.
In the totals, 0.3kWh is counted as battery to the grid and 0.3kWh as solar to the grid. See screenshot from todays grid view below.
In general, in my opinion, there should be no feed-in at all this time because there is no pv excess to sell.

1702046587634.png

I will leave the DESS active one more day to collect some data. Then i will go back to normal ESS because for this winter I could make a cheap constant buy price contract.

But I continue to follow developments with curiosity and like to test when there is something new.

0 Likes 0 ·
1702046587634.png (19.6 KiB)
ojack avatar image ojack ojack commented ·

Good morning,

on saturday a had to stop trying DESS because the system started to dump all of my unexpected solar into grid. So at 10:00 I switched to normal ESS.

1702278201938.png

Solar to grid after 12:00 is ok because of the full battery.

When I looked deeper into the data from the last DESS running days I found about 20% energy loss. How is this taken into account for the calculations of DESS? If you have to buy 20% more than you can use, the price difference between the low price and the high price has to be correspondingly larger for it to be worth it. Will this be a parameter in the settings because not all systems will have the same efficiency?

0 Likes 0 ·
1702278201938.png (35.6 KiB)
grua avatar image grua ojack commented ·
1 Like 1 ·
Show more comments
Dirk-Jan Faber (Victron Energy) avatar image Dirk-Jan Faber (Victron Energy) ♦ ojack commented ·

At the moment we calculate with an efficiency of 85%. This setting cannot be altered yet via VRM, but can via Node-RED (where we first test most stuff before putting it on VRM).
It is the `Settings/DynamicEss/SystemEfficiency` variable under `com.victronenergy.settings` dbus service.

1 Like 1 ·
Show more comments
kudos50 avatar image kudos50 ojack commented ·

That's great new. I will change the costs according and start testing. Pricing in NL has not been profitable the last weeks with only 7 to 8 cents between high and low so DESS has kept quiet for a while.

0 Likes 0 ·
dirk-s avatar image dirk-s commented ·

@Dirk-Jan Faber (Victron Energy) Thats a good step forward. Thank you for you effort.

But nevertheless Dynamic ESS doesn't work well with my installation because the consumption forecast doesn't fit well. Below a screenshot of the forecast for tommorrow:

screenshot-2023-11-29-181325.png

Why there is so low consumption forecast? Especially zero forecast for the marked hours.

I never had hours with zero consumption in the last year. Because of this the target SOC is to high and will be reached very fast and afterwards it takes all the needed energy from the Grid (undependent of the price). If the consumptions forecast would simple take the average of the last 4 weeks for each day, the result would be much better.

I have a simple installation with Multiplus 5000 II GX and 8,22 kWp SolarEdge PV on AC in with 21,3kWh Pylontech batteries. I have main consumption on AC In and some small critical loads on AC Out1 with in average 100-150Wh.

Could you be so kind and have a look on this, please? Either something is broken in my VRM installation or it works in a different way than I expect. Portal ID: c0619ab101c5

1 Like 1 ·
dirk-s avatar image dirk-s dirk-s commented ·

And why it changes every time. Below a Screenshot after i wrote the post before. It's 20 minutes later, but nevertheless to less for the marked hours.

screenshot-2023-11-29-183308.png

0 Likes 0 ·
dirk-s avatar image dirk-s dirk-s commented ·

here the wrong forecast for tommorrow:

screenshot-2023-11-30-190634.png

My lowest consumption during the night is at least 200Wh in average.

1701367974285.png

0 Likes 0 ·
dirk-s avatar image dirk-s dirk-s commented ·

Since 2 or 3 days the forecast is ok. No gaps and the forecast is more balanced. Like the average. I think you @Dirk-Jan Faber (Victron Energy) have changed something.

Thank you. Now, I can keep it running in Dynamic ESS Mode.

0 Likes 0 ·
Dirk-Jan Faber (Victron Energy) avatar image Dirk-Jan Faber (Victron Energy) ♦ dirk-s commented ·

Thanks. Good that the forecasts have improved. Unfortunately I cannot guarantee that the forecasts will remain like that. So if they are off again, please let us know.

0 Likes 0 ·
dirk-s avatar image dirk-s Dirk-Jan Faber (Victron Energy) ♦ commented ·

@Dirk-Jan Faber (Victron Energy)

Sorry, no, for tomorrow the same issue again. Much too less consumption forecast. If the forecast is so wrong, it’s useless to use Dynamic ESS. I have no idea what’s wrong here.

0 Likes 0 ·
dirk-s avatar image dirk-s dirk-s commented ·

Yesterday in the evening it changed again to the correct forecast. Also now for tommorrow it looks fine. I will observe the next weeks, perhaps I'm to impatient ;-)

0 Likes 0 ·
ronaldt avatar image ronaldt commented ·

When i chsrge my car the prediction of the power usage for the day is completely wrong. The forecast predicts that my car will be on the charger the whole day. Please completely ignore the car charging into the calculations when the car is on scheduled charge. The schedule is known in Venus when a Victron EVCS is used (is it?) and therefore it is also known when the power consumption stops.
The impact of the car charging is so high that any calculation is wrong when the carcharging is taken into account into the forecast for the rest of the day.

1 Like 1 ·
sarowe avatar image sarowe commented ·

Außerdem möchte ich mich erstmal für die geniale Arbeit bedanken. Ich habe seit 2 Monaten die Beta Version laufen und kaufe seit 2 Wochen über einen dynamischen Tarif Strom ein. Ich bin begeistert um es mal sehr deutlich auszudrücken.

Wie viele hier habe ich immer noch etwas Probleme große unregelmäßige Lasten, wie das E-Auto zu integrieren.

Mein Gedanke oder Anregung wäre jetzt: Eines der frei programmierbaren Relais über das ESS mit einzubinden. Das man im DESS zum Beispiel eine Bedingung formulieren könnte z.b. „Strom besonders günstig“ oder "unterhalb eines gewissen Preises" und das System schaltet dann dieses Relais. Das hätte dann auch den Vorteil, dass das System den Kausale Zusammenhang erkennt, Preis niedrig- Relais geschaltet- höherer Verbrauch.

Ich weiß nicht wie weit das technisch umsetzbar ist und soll nur eine Anregung sein.

Ansonsten macht einfach weiter

1 Like 1 ·
ronaldt avatar image ronaldt commented ·

Tomorrow the energy price is zero (or below) for a long period of time. Good moment to charge the battery. But it does not....

I guess because the time window to sell the energy is limited. So it charges just enough to cover for the expected use and the energy it can feed back to the grid and end up with the same SOC as where it started?!
Having a threshold where the D-ESS always charge the battery would be useful. This can be a fixed limit (not so nice), or a calculated one based on expected energy prices from e.g. https://energie.theoxygent.nl/. This is of course a guess, but better then decide on a time window of one day as it is now.
See below the expected behaviour where the battery only charges a little bit and the price (ex taxes) is near to or below 0 for a big part of the day.
schermafbeelding-2023-12-23-om-202854.png

1 Like 1 ·
ronaldt avatar image ronaldt ronaldt commented ·

Today I notice it again. Price of energy (without tax) is zero for 7 hours. But no charging to battery. I am trying to guess what logic is behind it. But a bit of help to understand this would be nice :)

Keep up the good work @Dirk-Jan Faber (Victron Energy) !

schermafbeelding-2024-01-02-om-215458.png

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

It looks like you have a typo in your battery cycle costs. According to our logging you have set it to be € 0.20 / kWh. Typically it is somewhere between € 0.01 and € 0.06 / kWh.

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

Hi @Dirk-Jan Faber (Victron Energy) , similar question at my system (ID b827eb273733):

Buy-price was cheap at night from 00:00 - 06:00, but battery wasn't charged from grid at all.

Later in the moring at 07:00 and 09:00 there was more consumption as predicted and energy was taken from grid at higher buy prices and not from battery.

Wouldn't it be better to charge the battery from grid at low buy prices in order to be able to use some battery reserves later for unexpected load peaks?

1704277950526.png

1704278487231.png

1 Like 1 ·
1704277950526.png (40.9 KiB)
1704278487231.png (41.6 KiB)

That should indeed be the plan. Not exactly sure yet why it did not charge the battery when the price was low on your site. We are looking into that.

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

That’s the plan for tomorrow: battery charching from grid from 02:00 – 04:00:

1704288934027.png

1704288965926.png


Let’s see if it really charges, I’ll report!


But another fundamental question: Does it really make sense to plan the SOC curve so that it drops to the minimum SOC (in this specific case 10%) at the end of the day? Wouldn't it be better to charge the battery a little more at night when buy prices are low than just up to the current planned 59%, and/or charge it during the day with PV-excess instead of loading the excess it into the grid, in order to always have a little extra SOC-reserve throughout the day for unexpected load peaks?

1704289021312.png

2 Likes 2 ·
1704288934027.png (199.7 KiB)

Unfortunately there is not general rule that will satisfy all use cases. And, especially for hindsight cases, it is always easy to say that the system should have acted differently. Initially we did have an extra setting for this, but that confused a lot of people.
We settled for this system right now and are mainly working on getting other quirks out of and some extra features into the system before focussing on improving this.

But let's take a look at what the system did tomorrow again.

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

The good news: the battery was charged tonight as planned!

The bad news: In my opinion, as already mentioned, the current SOC planning strategy has too few reserves to be able to supply unpredicted AC loads or less solar than predicted. As soon as a higher AC load than predicted occurs at a moment when the actual SOC is at the level of the planned SOC, energy is immediately drawn from the grid. This is very unpleasant and costs money unnecessarily...

In my opinion, however, the problem could be solved very easily:

When the plan is created, the SOC curve over time should be planned in exactly the same way as before. This basically works very well and thank you for that great work! However, in those phases in which the battery is charged either from grid or by solar power, it should automatically be charged for example 10 or 20% higher than originally planned. This reserve of 10 or 20% above the originally planned SOC should now be maintained throughout the day as long as no draw from the grid is required. However, as soon as unpredicted AC loads occur, this reserve should be used up in order to avoid drawing from the grid. Only when this reserve has been used up and the current SOC corresponds to the originally planned SOC, energy should be charged from the grid.

This reserve could for example be parameterized with a default value of 0%. At 0%, the system would behave exactly as it does now. However, if somebody wishes to use this reserve, he can parameterize it to a higher value. An optional parameter, which is 0% by default, but can be changed at will as an "expert setting", so to speak.

Or you alternatively could set it to a fixed value in the range of for example 10 to 20%, in which case users won't even notice it and nobody will ask questions about it, but everyone would be happy to have a system with less unexpected Energy from the grid.

In my opinion, this would be an absolutely essential function in order to be able to use DESS properly. Otherwise, nobody will understand why energy is drawn from the grid even though you have a battery that is still enough charged...

For me personally, this would actually be an absolute must have ... :-)

3 Likes 3 ·
grua avatar image grua grua commented ·

I realize that this would mean a somewhat greater intervention in the algorithm, but the resulting cost advantage would certainly not be negligible.

In addition, my wife keeps asking me why we are drawing energy from the grid again, even though the battery is not yet empty. It's often difficult to explain. She then always advises me to deactivate DESS...

So here is my idea presented as pseudo-code. It's very simplified, of course, but just to make my suggestion clear:

reserve := 10%;

while (true)
{
   if (scheduled battery charching)
   {
      charge battery till actual SOC >= planed target SOC + reserve;
   }
   else if (currently DESS system without reserve would draw energy from the grid)
   {
      if (actual SOC > actual target SOC) 
      {
         if (solar > AC load) // solar excess
         {
            if (actual SOC < actual target SOC + reserve)
            {
               charge battery from solar till SOC >= actual target SOC + Reserve;
               If there exists more solar excess than needed for charching the battery, feed it to grid;
            }
            else // actual SOC >= actual target SOC + reserve
            {
               feed solar excess to grid;
            }
         }
         else // no solar excess --> use reserve
         {
            hold grid set point == 0W by discharging the battery till actual SOC <= actual target SOC
         }
      }
      else // actual SOC <= actual target SOC
      {
         hold actual SOC == actual target SOC by drawing energy from the grid;
         
      }
   }
}



1 Like 1 ·
ojack avatar image ojack grua commented ·

But there is also the case that more PV yield is available unplanned. Then you want the battery not to be too full so that you don't "give away" too much PV to the grid.
Then your wife asks you why you had charged the battery from the grid more than necessary during the night even though the sun is suddenly shining so beautifully ;-) You should have known that ;-)

0 Likes 0 ·
grua avatar image grua ojack commented ·

Absolutely correct :-) , and that's why I would set such a reserve with e.g. only 10% SOC as an additional buffer above the originally planned target SOC and not more.

At the moment, I simply see too frequent charging of energy from the grid. For example, this was the original plan for today:
and this is the current status:
1704384910202.png

This could certainly be largely prevented with a certain buffer above the originally planned SOC line and wife would be happy. And happy wife, happy life :-)

And any excessive solar production that would cause the battery to charge to a value above the "originally planed target SOC + reserve" should always be sold to the grid. Never would charge the battery higher than "originally planed target SOC + reserve". I have taken this into account in my pseudo code above.

1 Like 1 ·
1704384910202.png (32.4 KiB)
ojack avatar image ojack grua commented ·

What speaks against charging the battery with PV far beyond the planned soc up to 100%? The less you have to recharge from the grid the next night. At least in Germany, feed-in should always be the last option because the feed-in tariff is always far below the purchase price.

1 Like 1 ·
Show more comments
Henrik Känngård avatar image Henrik Känngård grua commented ·

I see similar behavior on my installation, where I would like the battery be as much charge as possible during low prices (usually at night) to be able to only use battery during higher price (mostly during the day), but now the system takes energy from the grid much more than it seems necessary during the days. My system ID: c8df84d34272.

And it would also be nice to be able to put in different grid-fees for on and off peak, since we have different price set up here :)

0 Likes 0 ·
Dirk-Jan Faber (Victron Energy) avatar image Dirk-Jan Faber (Victron Energy) ♦ Henrik Känngård commented ·

Taking the consumption from the battery instead of from the grid while the price is high is on our list of things to fix.

As for the on and off peak grid fees, that will probably end up a bit lower on the todo list, but it has also been noted. Are those fees both for buying as selling? Can you tell a little more about that, so I can update the ticket with as much info as possible?

0 Likes 0 ·
grua avatar image grua Dirk-Jan Faber (Victron Energy) ♦ commented ·
Taking the consumption from the battery instead of from the grid while the price is high is on our list of things to fix.

perfect!

1 Like 1 ·
Henrik Känngård avatar image Henrik Känngård Dirk-Jan Faber (Victron Energy) ♦ commented ·

Great news that you are planning to avoid using the grid on high prices!
Regarding the on/off peak. Here in Sweden it is for both selling and buying, but more critical when buying, since it differ more then.

0 Likes 0 ·
Dirk-Jan Faber (Victron Energy) avatar image Dirk-Jan Faber (Victron Energy) ♦ Henrik Känngård commented ·

Just to make sure that we implement that right in one go. I took a look at tibber.se, but could not find any info the site regarding different grid fees.
Can you provide your current grid fees together with the times they apply?

0 Likes 0 ·
Henrik Känngård avatar image Henrik Känngård Dirk-Jan Faber (Victron Energy) ♦ commented ·

You are quick! :) The grid here is Vattenfall, In Sweden we then can choose who deliver the power and in my case I have chosen Tibber at the moment. Vattenfall has the following info on their site:
https://www.vattenfalleldistribution.se/kund-i-elnatet/elnatspriser/elnatspriser-och-avtalsvillkor/
https://www.vattenfalleldistribution.se/kund-i-elnatet/elnatspriser/ersattning/

0 Likes 0 ·
Dirk-Jan Faber (Victron Energy) avatar image Dirk-Jan Faber (Victron Energy) ♦ Henrik Känngård commented ·

Tack så mycket. I've updated the ticket with this info.

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

Hi Dirk.





Here in Denmark we have 3 price zones in the winter and in the summer, and 6 different prices


I have attached the prices and the time ranges

Lavlast = low load

Spidslast = peak load


Højlast = High load

And there arme as explained differentiere proces for ‘High load’ summer ve Winther


Right now in Winther between 17:00 and 21:00 the tariff Price is 0.16 euro. So its actually a lot.



img-3441.jpeg


0 Likes 0 ·
img-3441.jpeg (259.8 KiB)
img-3442.png (221.4 KiB)
Dirk-Jan Faber (Victron Energy) avatar image Dirk-Jan Faber (Victron Energy) ♦ m1kkel commented ·

Thanks! I've added that info to the ticket as well. Funny to see that every country adds its own twist on pricing.

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

YEah, doesnt really simplify things. I dont like the dynamic tariff's, and i believe its an excuse to make more money, and not to renew the electrical grid.


I have to make sure i have a full battery every day for consumtion between 17-21. I think i need to disable DESS and set up scheduled charging everyday in the night until you have this sorted. do you agree?

0 Likes 0 ·
Peter avatar image Peter m1kkel commented ·

In competition system: gbbvictronweb.gbbsoft.pl there is an option to forse MaxSOC (e.g. 90%) ones a day in price-based optimizer. :-)

1 Like 1 ·
m1kkel avatar image m1kkel Peter commented ·

What is a competition system??

0 Likes 0 ·
Peter avatar image Peter m1kkel commented ·

Competition system is remarkably interesting. Here is a link: http://gbbvictronweb.gbbsoft.pl/

0 Likes 0 ·
Show more comments
ronaldt avatar image ronaldt commented ·

Does DESS save the energy for later use, or sell it to make money and then later buy it back to use it?

Today it sold everything that was left in the batteries (down to 10% SOC) and decided to buy from the grid for higher prices. The sell price was lower than the buy price later in the day.
Is this scenario taken into account?
I rather would have saved some energy from the battery to use it later in the day when the prices are higher.

schermafbeelding-2023-12-27-om-074706.png

1 Like 1 ·
colin-jones avatar image colin-jones commented ·

When you "disable charging from the grid" does that still mean you power consumption from the grid if solar is less than that load, eg cloud passing over, rather than discharging the battery to make up a temporary shortfall?

I still can't enter negative export price on the VRM form.

Regards

0 Likes 0 ·
Show more comments

Article

Contributors

dfaber contributed to this article