AutoSetpoint

Saving for replacement

Often the allure of fitting solar to your house is the savings in buying electricity. In South Africa this is compounded by our regular rolling blackouts, so there is also an opportunity cost to consider in certain circumstances. However not many people realize that the savings today is simply offsetting the replacement cost of later.

Solar panels have a limited lifespan, although this is usually twenty years. Add to that the fact that solar installation costs have been plummeting for decades now, and it might seem like a no-brainer that it would be more affordable to replace than the initial installation was. While that might be true for the PV panels alone, there is also the charge controller, inverter and battery to consider. The battery specifically has a much more limited lifespan, with Lithium based units typically around 10 years depending on usage. Batteries are a lot of money today, and it will still be a lot of money 5 or 10 years from now, to fork out to replace. In my opinion, not considering the replacement costs in your calculations today is a mistake.

Or, put another way, savings today is simply offset against replacement costs tomorrow.

Combining investment with forecasts and savings

In my case, my LiFoPO 4 battery specification is 6000 cycles at 80% DOD. This translates to 16 years worth if I discharge the battery once a day to 20% remaining charge. Batteries degrade over time too, so I assume this to be an optimistic scenario. So, I instead aim to maintain a minimum SOC of 45% (55% DOD) because of our utility woes, which should push that to 20 years, and then I hope that it will last 10 years. So in order to save more now to replace later, I need to utilize the battery effectively.

If I was completely off-grid, that would mean simply making it through each night and each cloudy day. That's 100% savings of course, and more a load management/lifestyle exercise. I'm grid-tied however, so I have to manage my draw from the grid effectively to reduce buying electricity. Three factors play a role for me in South Africa:

  • The weather and the PV yield.
    We are blessed in South Africa with an excellent sunny days ratio, so it's easy to always bank on it. Until you can't.

  • My load profile and how that changes not just from season to season, but from hour to hour.
    As with anywhere, the load profile changes a bit from peak summer to peak winter. While historical usage is a good indicator, the system should be responsive to even dramatic load changes and deviations from the profile.

  • South Africa's unplanned and intermittent rolling blackouts.
    These are mostly short-notice (or even completely unannounced) and remains a greater risk every year. There's no point in maximizing savings but end up with no local resources at a critical time when the utility has no capacity. For this reason I maintain a minimum SOC of 45% instead of 20%.

How it works

AutoSetpoint takes the weather forecast and the basic load profile and projects a battery SOC over a running 24 hours period. It continually monitors the inverter readings via the Victron's MQTT broker, and then incorporates the current actual situation into the projection calculation via a fall-off curve to determine the requisite grid draw to maintain minimum SOC.

The configuration and operation of the system can be detailed as follows:

  • Constant usage items (e.g. pool pump, computer, geyser) is loaded into the load profile, which each 15 minute period fully accounting for the total known constant base load.
  • Weather forecast is parsed and weighed based on weather conditions, cloud cover and irradiance and latitude, and a percentage of total yield is calculated for each 15 minute period.
  • Any additional situational load that is intermittant (e.g. coffee machine, microwave, washing machine) based on actual reading from MQTT is applied with an inverse-squared curve over the upcoming 15 minute periods.
  • Solver runs high, medium and low grid draw scenarios until it converges on a mean grid draw value to keep SOC above or equal to minimum SOC for the next 24 hour period. It then issues a command to the Victron system to adjust the grid draw.

AutoSetpoint was developed to operate with the Victron system and their MQTT broker. It can of course be fitted with adaptors for other equipment manufacturers, should any provide information and standards on their communication. To date, no information has been forthcoming on how to control the grid draw of, e.g. the Deyness inverters. Some Python libraries exist, and forms part of the home automation open source project, but none offer the ability to issue commands to the hardware.