Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The Algo #65

Open
Webreaper opened this issue Jan 25, 2025 · 0 comments
Open

The Algo #65

Webreaper opened this issue Jan 25, 2025 · 0 comments

Comments

@Webreaper
Copy link
Owner

So here's the plan

  1. Load the last 7 days of daily inverter stats into a MemoryCache with 7 days' expiry.
  2. Use the inverter data to calculate the max %age change in a single slot. This will replace the "slots to charge full battery" setting.
  3. For each 30 minute slot through the day, aggregate the last 7 days' PV generation, and compare to the last 7 days' forecasts. This will allow us to create a per-slot damping factor that will take into account multiple strings, shading, etc
  4. Once we have that, we can use the forecast to calculate how much power we need to generate in the current slot, to get the battery state to where we want it to be. So Charge action then only does something if the current slot looks like it's not going to achieve the battery SOC increase we need. If there's PV, Charge will be a no-op.
  5. Always charge below export rate guarantees we arb the prices if they fall.

Do we need to do anything with the forecast overnight? Maybe use it to not bother charging, depending on the price from 7am to when we expect to start generating PV.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant