DESS works in mysterious ways sometimes, but a lot of issues can also be traced back to the forecasting and settings used. DESS strictly adheres to the targetSOC calculated. If for example, the battery is scheduled to completely discharge from 80% to cover the consumption forecast for the next day it will charge until 80% during the cheap hours.
What was the energy forecast for the next day? are you in trade mode or green mode? Could you share your DESS settings?
Look at today (this is after DESS has decided not to charge enough from grid during cheap rate for 2 nights). I will be using grid unnecessararily at 23.00 and that assumes consumption and solar forecast are correct!
Apologies, I do not think I am experienced enough with DESS to help you with this. Also consumption forecast is not selected (could be handy for debugging)
Anyhow here are my thoughts:
DESS will always try to charge the minimum amount of energy possible to the battery to cover the consumption forecast. Having more energy in the battery can lead to the case where an excess of solar could not be stored anymore in the battery, because it was already partly full. This explains the cycling between 0-20%
As for using the grid unnecessarily at 23.00: Isn’t this exactly what you want? it will reach 0% (truly 0% damages the battery. LFP batteries are recommended to stay above 10%) in the 23:00-0:00 hour. After 23:00 your electricity price will be at a reduced rate. It would not make any sense to cover those consumptions with battery power as you would only need to charge MORE energy ( to cover battery inefficiencies, usually around 75% is what you can retrieve back after charging).
Possible workaround:
Add charge restrictions from the grid (found in the DESS setup menu) when you have high prices. You can add the specific times outside 11:30 and 5:30 when you do not want the battery to use the grid to charge.
DESS has two forecast issues - the accuracy of solar production and consumption
There is nothing that can mitigate these - in parts of Europe the weather is very varied and people will have random usage e.g. using an electric cooker 1 or 2 nights a week
What DESS should not do is assume the above forecasts are accurate and predictable. One solution would be to allow a user setting for a buffer which can be used (unlike minimum SOC)
0% will NOT damage my Lifepo4 battery and you should never rely on SOC to protect a battery - that is the job of Voltage and appropriate setting in the inverter/BMS