Tuesday, September 24, 2024

Powerwalls and Time Based Controls

We are on a Time-of-Day electricity plan, the PG&E EV2 plan. Our cost for electricity is:

  SummerWinter
Off-Peak12am - 3pm$0.31/kWh$0.31/kWh
Mid-Peak3pm - 4pm$0.51/kWh$0.48/kWh
Peak4pm - 9pm$0.62/kWh$0.49/kWh
Mid-Peak9pm - 12am$0.51/kWh$0.48/kWh

We are incentivized to keep the power-hungry activities like charging the electric vehicle to the daylight hours where solar is plentiful or overnight where demand is low. Unfortunately however, there are several confounding factors to our energy use which make things more complicated.

  1. The house is on a hill, the crest of which blocks direct sunlight for longer and longer periods each winter day.
  2. We have two Powerwalls, able to store 27 kWh to supply the house at other times.
  3. BUT, when we installed the powerwalls in 2019 we claimed the Residential Clean Energy tax credit which requires the batteries be charged using only solar power for five years.

Combining all of these things, we ended up with an unfortunate confluence in the winter months when the hill allows only a few hours of direct sunlight: there is not enough excess solar to charge the batteries while also powering the house.

We would head into the higher priced times of day with little ability to time shift stored solar production. The batteries were never able to charge. Our power bills rose substantially, calling into question why we paid for this stuff in the first place.

The Tesla app has a "Time Based Control" mode, where it takes the time of day and rate plan into account. However its main focus is in exporting solar production during high value hours by running the home from battery. Lacking sufficient production to charge the battery, this resulted in poor outcomes with Time Based Control. I didn't look at it again for the next few years.


 

Hacking Around It

Instead we've come up with techniques to get things working acceptably:

  1. On winter mornings set the Powerwall to reserve 100% of its capacity for power outages. All solar production during the day charges the batteries, trying to reach 100%. The home's needs are met from the grid during off-peak hours.
  2. When peak hours start, change the Powerwall to 30%. It then discharges to power the home, allowing the evening load to be partially met using stored solar power.
  3. Do this every day. Change the Powerwall setting in morning and afternoon, every day, all winter.

I of course wrote software to automate this, but Tesla has only recently decided to offer an actual API to control Powerwalls. For the first few years I was instead using authentication mechanisms and APIs which a community on GitHub would reverse engineer, and which Tesla kept deliberately breaking. I had to watch for errors from my software or, maddeningly, when it would run without error but Tesla ignored its commands.


 

Changing the Game

At the beginning of this month, our five years was finally reached. I set the Powerwall to be able to charge itself using grid power. This didn't immediately change much behavior, until I toggled it to Time Based Control again.

Now, suddenly, things are much improved. At 3pm every day the Powerwall begins supplying the house energy demand, and all remaining solar production is sent to the grid. At midnight when rates drop, the Powerwall charges itself to 100% using grid power, to be ready for the next day.

This is already better than the system I had cobbled together:

  • There were many days when the total solar production could not fully charge the batteries. Now, no matter what, the batteries are 100% charged every day.
  • We are on the Net Energy Metering plan from 2019. Sending solar to the grid offsets our use at other times, so long as the house can be powered from battery.

 

Futures

I do want to change the current behavior in one way: instead of charging from the grid overnight, I'd prefer the Powerwall try to charge from excess solar. In summer it will usually be able to do so, and in winter it can try and then start charging itself mid-morning from the grid if it isn't going to make it to full. I'm looking into the Fleet API which Tesla published this year for what might be possible.

However, fundamentally, this stuff needs to be easier for the homeowner. I've been writing custom software and manually intervening for years, just to get a decent result out of it. I should not need to do that, after having paid so much for the system install.

One small provision in the Inflation Reduction Act was to remove the five year solar charging mandate for batteries installed after its passage in 2023; the goal is to incentivize more batteries on the grid. With freedom to charge the battery, it should be able to figure out how and when to charge itself. The behavior of the system over time should inform future operation, deciding when to charge from the grid and when to trust that solar power will provide. Next-day solar forecasts can inform this decisionmaking.