I was in no way criticizing the hack version by dognose. I think he has done a great job. If fact the hack version is the only reason I have been testing DESS again. It was posted here as feedback because I am using the hack version. Which I assume is unsupported by Victron at the moment.
Today it also happened to me that it scheduled a charge to reach target soc, charge was scheduled for 700watt, but solar was over 4kw for a couple of hours.
Given the fact that my highest price difference is less than the round trip efficiency of charging/discharging, and so it never makes sense to charge the battery from the grid, I deleted the charge logic from Dognoses dynamicess.py for now.
So, finally I was able to verify the changes I made regarding this issue:
- TargetSoc was Set to 78%
- With a Soc of 76%, this resulted in a calculated charge-rate of 2943 Watts, while currently solar spiked upto 6000 Watts.
Regular behaviour here would be, that the battery charges with 2943 Watts and the system will feedin about 3000 Watts to the grid.
Therefore, âmyâ system switched into âSCHEDULED_CHARGE_SUPPRESS_FEEDINâ, pretending that there is a â0-Feedin-Restrictionâ enabled - and this causes the system to ignore the precalculated charge-rate and use what is available.
So, this seems to work as expected - I will update the repository during the day, so this mode will be available for everyone as well:
A tiny simplification here is, that this mode will only kick in upto 90% SoC. When the battery is not able to take the excess solar anymore, pretending a â0-Feedinâ would most likely result in throttling of the mppts / ac-pv, which is most likely undesired as well.
So, the simplest approach is to say âOnce we got 90% soc, it is not that important anymore to suppress some extra from beeing feedin.â
Updated the repository, installation remains the same, just follow this post:
Additionally addded a âHack-Versionâ Field in the cerbo-UI, so you can easily verify (in the future) on which version of the hack you are running in case you skip some posts :
Can the new version simply be installed over the existing one, or does the current version have to be uninstalled first?
Just run the scripts again, it will overwrite.
hopefully the DESS-logic will not drain the batteries after this âpowerfulâ loading the next hours to the newly computed (lower) TargetSOCâŠ
As encountered yesterday: Bei wem lÀuft DESS? - #165 by OveStj
My hack suppresses that as well. Discharge (to grid) is completly removed from the possible actions.
When the actual soc exceeds the target soc desired by DESS, my hack is switching to either SELFONSUME_ACCEPT_CHARGE (if solar+ > consumption) or SELFCONSUME_ACCEPT_DISCHARGE (if consumption > solar+, until the soc falls down to target soc worstcase)
Means: Getting ahead of (soc-)plan is always allowed - getting behind not, when falling behind the system will charge or idle based on the original vrm schedule.
All the states starting with âSelfConsumeâ are basically just regular ESS Mode without any magic. I just gave them different names to be able to identify WHY the system is deciding to override any possible schedule.
why do you stop charging with max. avail solar in your script at 90% SOC ?
I understand, that max. charging-ability of batteries is getting lower the nearer 100% SOC comes. But if some batteries charge with max. power up to 95 or 98% what would be the problem to charge at max. avail solar power and if batteries are unable to charge that fast the rest of solar is fed inâŠ
An option to allow charging up to 100% (from solar) would be nice indeed.
Amongst other reasons: to enable the periodical battery charge up to 100%.
Unless this is unaffected by this version of the hack ?
Iâm OK if the system charges the last 10% from grid when prices are low.
If my DESS settings are set to never feed in excess solar to the grid, I presume the hack version will still respect this ?
And big thanks for your work !
*sends virtual beer*
Itâs not stopping to charge. It is just stopping to âpretend 0 feedinâ at that point, so eventually falls back to the lower chargerate calculated by dess, but allows feedin again.
Reason is, that the systems - naturally - would start to feedin, when the battery can only take for example 500 of 3000 watts solar due to high soc.
If the hack would now still pretend a 0 feedin policy, that would lead to throttling down the solar production to 500.
So, iâm stopping that at 90% soc, allowing the system to act ânormalâ here, charge whatâs possible / calculated and feedin when allowed and / or required.
Yes ofc, fallback is âUser-desired-settingâ. If you have 0 feedin enabled that problem basically shouldnât exist for you anyway.
I think I should draw a decission tree of whatâs happening when and why
I have an AC attached pv - independent from the victron ESS - so there canât be any throttling from victron.
I think iâ'll change the parameter in the dynamicess.py to 99%.
would help 100%
Ove
That would provide some clarity to those of us not familiar with the script inner workings and could even be beneficial to yourself so you donât get lost in your own logic
For me, thatâs OK, because of MPPT.
So, have drawn a decision tree
Hope that makes it somewhat clearer for those interested in it. In green youâll find the respective âfinal strategyâ iâm showing in the cerbo-ui.
(This is evaluated every 4 or 5 seconds)
The flowchart is very nice, although thereâs a point that had me scratching my head.
âSoC < TargetSoC ?â â No (so SoC â„ TargetSoC) â âSolar+ > Consumption ?â â No â âTargetSoC < SoC ?â (so SoC > or = TargetSoC)
It all fits and computes, only the usage of < vs > in different steps, SoC and TargetSoc switching places and inversion when taking âNoâ branches took some extra iterations in my head before it all parsed.
If somebody else is having parsing troubles, maybe my annotated path above helps a bit
Yes have this as well. Means DESS/VRM is currently not generating a schedule.
I also noted, that during the past days, âtomorrow pricesâ became available quite late.
I assume this may be the cause, for DESS/VRM not beeing able to generate the schedule for the noon âin timeâ.
(The hack in this case is not doing anything, but let the original stuff happen - which looks like a fallback to ESS / Self Consume Mode)
What is happening? I have had this phenomenon before but I am not observing it at the moment. Prices and schedules are usually available at 1:30 p.m.
Itâs a global problem, many have it at the moment: