At my home we have solar PV hooked up to Victron inverter/chargers and a Redflow ZCell battery for energy storage. The setup is described in detail on my blog. By their nature, ZCell flow batteries needs to undergo a maintenance cycle at least every three days, where they are discharged completely for a few hours. Having only one battery, this means we can't use the "minimum state of charge" feature of the Victron kit to always keep some charge in the battery in case of outages, because doing so conflicts with the ZCell maintenance cycles. This isn't a problem if you have more than one ZCell, because the maintenance cycles interleave in that case, but so far we only have one of these things. If I want to keep charge in the battery for emergency purposes on non-maintenance days, I can do that by configuring scheduled charge settings manually on the Victron Cerbo GX console, but then I have to remember to turn those things back off (or otherwise adjust the settings) for the next maintenance day. For this hack week, I'm going to see if I can automate that piece somehow.
Goal for this Hackweek
Figure out how to interrogate the ZCell Battery Management System's REST API to find out when the battery will be doing maintenance, and then figure out how to automatically update the scheduled charge settings on the Victron Cerbo GX to keep the battery reasonably full on non-maintenance days, and to let it drain again on maintenance days. Also, the battery still needs to be allowed to discharge during peak (i.e. more expensive) electricity times, which are 07:00-10:00 and 16:00-21:00 weekdays, regardless of whether it's a maintenance cycle day.
Bonus points for implementing this in Go and/or Rust, to force me to learn those languages.
- Go With The Flow (my blog post describing our current setup)
- Victron Energy Open Source
- Venus OS: Root Access (to get root on the Cerbo in case I need that)
- The ZCell BMS REST API is documented in its online help, i.e. in my case this is available only on my internal home network (apologies to everyone reading this who doesn't have access to my house)
Looking for hackers with the skills:
Nothing? Add some keywords!
This project is part of:
Hack Week 21
This project is one of its kind!