Every sunny afternoon in California, I was wasting free energy that could have been cooling my house and saving me money at the same time.

I have rooftop solar and a Tesla Powerwall. On really hot days, the Powerwall runs out of storage space by mid-day—around 1:00 PM. Once the battery hits 100%, the panels keep pouring out electricity with nowhere to put it. Under California’s NEM 3.0 rules, I’m forced to sell that excess power back to the utility company for pennies on the dollar. Pure waste.

Then comes the 4:00 PM to 9:00 PM peak rate window.

That’s right when the family comes home, the house is heat-soaked, and everyone wants to crank the A/C to cool down. During those peak hours, grid electricity is at its most expensive, so the Powerwall kicks in to run the air conditioner.

Good idea, in theory. Except a home battery is finite.

Running the A/C continuously from 4:00 PM to 9:00 PM drains the Powerwall fast. The battery runs dry long before morning, forcing me to buy grid power overnight. Buying power at 2:00 AM isn’t peak rates, but it’s still far more expensive than running the A/C when it was literally free from excess solar all afternoon.

The battery wasn’t the problem. It was already maxed out by lunch. The problem was every kilowatt-hour I was forced to sell for pennies between 1:00 PM and 4:00 PM that could have kept the house cool through the evening.

So I asked an agent a simple question: What if we stored that free afternoon power inside the building itself?

Not in lithium. In the air and thermal mass of the house itself. Pre-cool the house hard down to 67°F while solar energy is free and overflowing, then turn off the A/C and coast through the 4:00–9:00 PM peak rate window on thermal mass.

🛠️ Companion Build Notes

Looking to build this yourself? Read the step-by-step architecture, system diagram, key decisions, and gotchas in Build Notes: The Thermal Battery.

The $100 brain in a drawer

We started with Home Assistant, an open-source home automation platform, running on a spare $100 Raspberry Pi I had sitting in a desk drawer.

The agent wrote the Python integration for Tesla’s API and started monitoring the metrics that matter: solar generation, battery state of charge, and real-time grid export.

The control logic is simple. When solar output peaks and the Powerwall hits capacity between 1:00 PM and 4:00 PM, it triggers “thermal battery mode.” The system aggressively chills the house on power that would otherwise be sold back to the power company for almost nothing.

At 4:00 PM sharp, peak rates hit. The A/C shuts off completely.

Because the house started at 67°F, it warms up slowly. The heaviest electrical load in the building stays dead quiet through the expensive 4:00 PM to 9:00 PM window.

At 9:00 PM, when utility rates drop back down, the A/C turns back on for the rest of the evening. But because the house is already pretty cool, it doesn’t have much work to do. Better yet, because the Powerwall didn’t get pounded during peak hours, I still have plenty of battery energy saved up—so if the A/C does run, it’s still drawing from stored solar power rather than the grid.

I stored early-afternoon sun—not as electricity, but as cold air.

Home Assistant Solar Generation & Powerwall Dashboard

The $12 chip I’d never heard of

My furnace is ten years old, but it’s a solid multi-stage unit with a variable-speed blower. The obvious play was slapping a smart thermostat on the wall. But off-the-shelf units like Nest treat multi-stage furnaces like dumb three-speed switches. Installing one would strip out the variable-speed modulation that makes the unit efficient. I’d be paying $250 to make good hardware dumber.

I had no idea how to bypass that until the agent suggested an ESP32 board—a tiny $12 microcontroller I’d never heard of.

The agent didn’t just mention it; it sent me the exact Amazon link to buy the board, wrote the custom ESPHome firmware, and gave me step-by-step instructions for wiring it directly into the furnace’s internal control board. It communicates natively, drives the multi-stage modes directly, and preserves every factory safety interlock.

Twelve dollars on Amazon to turn a ten-year-old furnace into a genuinely smart, modulating unit.

One non-negotiable rule: my wife still uses the physical thermostat on the wall exactly as she always has. She doesn’t know or care that an agent is running solar arbitrage underneath it. It just works.

Physical Thermostat & ESP32 Smart HVAC Control

Auditing the smart home mess

Once the core thermal loop was running, I let the agent audit the rest of the house’s automation setup.

It immediately flagged my existing Wi-Fi smart plugs—cheap units from a disreputable vendor routing traffic through unknown cloud servers. The agent flagged the security risk and found a set of local, cost-effective Z-Wave replacement plugs on Amazon. I ordered them, swapped them in, and eliminated the cloud dependency entirely.

It then bridged my mismatched Google and Apple gear into a single local control plane, so the Apple Home app drives everything natively without external cloud round-trips.

None of that was the original project goal. It was just fast and cheap to fix once the agent was already in the loop auditing the stack.

Home Assistant Energy & Thermal Decay Monitoring Dashboard

What this actually proves

Here is the real breakdown of what happened: an AI agent audited my home network, identified hardware I’d never heard of, sent me Amazon links for the exact components, wrote custom firmware, called the Tesla API, calculated thermal decay rates, and stitched everything into an automated loop that saves real money every day.

That isn’t the version of AI you see in marketing demos. There’s no clever chat screenshot to post on Twitter. It doesn’t write poetry. It interacts with physical hardware and pays for itself.

The real benchmark for AI agents—at home or in the enterprise—isn’t how conversational they are. It’s what they can execute that creates measurable ROI.

Unglamorous as a solar-arbitrage furnace is: it works. And that’s where most of the actual value is going to be built.