Eight years ago I fulfilled a childhood dream and put 35 panels on my roof. I was giddy about it. I wrote a whole post, full of playback GIFs and REPL snippets, about the stuff I learned.
This is a right-to-repair story. The hardware you buy should keep working for you, and the data it makes should stay yours, even after the company that sold it moves on. The panels still work great. Everything around them got weird, and what I learned this time is how the whole system, from my basement to the state capitol, is quietly arranged against that, and against the simple act of making free energy and sharing it.
They left the old hubs behind, so I took it back
In that first post I raved about the Curb Home Energy Monitor. Eight hundred dollars of hardware, CT clamps on every breaker, beautiful realtime dashboards. The catch I did not think about at the time: the dashboards lived in "the cloud."
Then Curb moved on. Their new model is cellular-only, no wifi, no ethernet, with a monthly fee to reach your own data. And in February 2026 they discontinued the cloud for the older wifi and ethernet devices like mine; it went dark and never came back. Just like that, $800 of hardware bolted to my own breaker panel turned into a brick, because a server somewhere stopped answering the phone.
And notice what the cellular move really does. My old hub talked over my own wifi and ethernet, on my own network, which is the only reason I could reach in and take it back. The new M10 phones home over a cell modem I do not control and cannot see. The data never touches a wire I own; it goes straight to the monitoring company, and the owner rents it back by the month. That is not a product decision, it is a repair decision: they closed the door I climbed through. You cannot redirect a radio you cannot reach, so the M10 is not repairable by its owner at all. You just keep paying to read numbers your own electrical panel generated.
This is the oldest lesson I keep having to relearn. If your data lives in someone else's cloud, you do not own your data. You rent it. And the landlord can evict you with a shrug.
So I did what I always do. I reverse-engineered the hub, pointed it at a server I own, and rebuilt the entire dashboard self-hosted. The clamps never moved. Only the destination changed. Now every watt lands on a machine in my house and nobody can turn it off but me.
While I was rebuilding it, I added a small number under "used" and "produced": am I a net credit or a net debit this window? It is only an estimate. It sent me down a rabbit hole I did not expect.
I got lucky, and you probably can't
I wanted to know how Connecticut actually settles my surplus. Here is what I found.
Because I interconnected back in 2018, I am grandfathered on old-school net metering: one-for-one, at the full retail rate, delivery charges included. Every kWh I push onto the grid cancels a kWh I pull back later, dollar for dollar. Simple, fair, generous. (I am told the grandfathering runs through 2039. I still need to dig my interconnection paperwork out of a drawer to be sure.)
Here is the part that stopped me. You cannot get this deal anymore. Connecticut closed net metering to new residential solar on December 31, 2021. I made it in by three years without knowing the date existed.
What replaced it, and what is coming
New solar since 2022 goes onto a program called Residential Renewable Energy Solutions. You pick "Netting" or "Buy-All," sign a 20-year contract, and hand your renewable energy certificates to the utility. Netting still credits exports close to retail, which is actually generous by national standards. Buy-All sells everything you make at a fixed price and buys everything you use back at retail. Not as clean as one-for-one, but livable.
Then I read the draft for the next program, the one for systems built 2028 through 2035. And my heart sank a little.
The plan, in plain words: pay you less than retail for what you export, floor it no lower than the raw supply rate, switch everyone to "instantaneous netting," and push hard toward batteries.
Instantaneous netting is the sneaky one. Today my noon surplus banks against my 8pm dishwasher. Under instantaneous netting, only the power I use in the very same instant I make it counts at retail. Everything else gets the lower export rate. Overnight, the grid stops being my battery.
The turtle shell
The official reason is "equity" and stopping the "cost shift." The actual effect is this: everybody who can afford a battery seals themselves up and stops sharing.
I keep calling it the turtle shell. You take a person who was generating clean power and pushing the extra onto the grid for their neighbors, and you hand them every incentive to hoard it in a box in the basement and share nothing. That is not equity. That is atomization wearing an equity costume.
And it eats itself. The people who can drop twenty grand on storage defect. The fixed grid costs they used to help carry land on the renters and the folks who cannot afford a shell. Their bills go up. More people defect. That is a utility death spiral, and the fairness story is the grease on the rails.
The worst part is that all of it is priced out for a normal homeowner. The technology to do this right already exists: panels, batteries, smart loads, an EV that is a battery with wheels. What does not exist is a cheap, unified system that lets a street pool its sunshine and actually share it. Nobody sells that. The utility does not want to be cut out of the middle, and the vendors sell boxes, not commons. The two things that look like sharing, community solar and "virtual power plants," mostly just install a new middleman where the old one stood.
What I actually believe now
Eight-year-old me thought the hold-up on solar was technology. It is not, and it has not been for a long time. The panels are cheap and they work beautifully. The hold-up is that we never built the layer that lets regular people share what they make without somebody extracting a toll in the middle.
I spend my working life building exactly that layer for computing: local-first, you own your machine, no landlord. Energy needs the same thing and does not have it. The 2028 rules are, accidentally, a giant sign pointing straight at the gap. Generate, store, and share close to home, they say, because the grid has decided it does not want your sunshine at a fair price.
So I am keeping my grandfathered deal for as long as it lasts, I am keeping my watts on my own server, and I am starting to suspect the next project is not a bigger roof. It is the sharing layer nobody has built yet.
The software, if you have one of these hubs
When Curb discontinued the cloud for the old wifi and ethernet hubs, mine kept sampling but lost its dashboard. I rebuilt that dashboard to run entirely on the hub itself, off its 1-second feed, no cloud and no account. If you have a lamarr-era Curb hub gathering dust, here is the whole path back.
sha256 6bd265dd05730ed0b8c2de50e4dfd894af903a30c1e1d84f554e961b15fca599 md5 04ca7b2f25e47ff14d665687b5ee3807
It is AGPL-3.0 and carries none of Curb's proprietary firmware.
1. Get a root shell on your hub. The hub is locked down, but it still trusts the dead update channel, so you can hand yourself root without opening the case. Use curbed: you point a DNS record at a small recovery server it runs, power-cycle the hub, and a couple of minutes later you have SSH root on your own device. No hardware, no soldering. Right-to-repair on a thing you bought.
2. Put the dashboard back on the hub. Everything from here runs from one place, the self-hosted collector: energy_monitor_collector (AGPL, no cloud). Get it, install it, and let it fetch and install the on-hub viewer over your SSH access:
git clone https://git.unturf.com/engineering/unturf/energy_monitor_collector.git cd energy_monitor_collector make install make deploy-viewer HUB=root@<hub-ip> # fetch the viewer release and install it make reboot-hub HUB=root@<hub-ip> # bring it up make verify-viewer HUB=root@<hub-ip> # confirm it is serving on port 80
No git? GitLab also prepares a source tarball of every branch — grab and unpack it:
curl -L https://git.unturf.com/engineering/unturf/energy_monitor_collector/-/archive/master/energy_monitor_collector-master.tar.gz | tar xz cd energy_monitor_collector-master
Then open http://<hub-ip>/ and your dashboard is back, running on the hub, talking to nothing but your browser. deploy-viewer just pulls the tarball linked above and runs its installer, so you can also unpack it and make deploy by hand if you prefer.
One caveat, stated plainly: the on-hub viewer is a browser-side historian. It builds its record inside the open tab, off the hub's live feed, and the hub keeps no queue of its own for it. So it only collects while a browser tab is open to the viewer; close the window and collection pauses, leaving a gap for that stretch. That is fine for a live glance, and it is exactly why the next step exists. The collector runs on a server and the hub's own uploader posts to it around the clock, no tab required, backfilling whatever it buffered, so your long record never depends on a window being open.
3. Keep years of history (optional). The on-hub viewer holds a browser-sized window; for the long record the same collector stores it. Start the ingest server and point the hub at it:
sudo make serve-tls # HTTPS on :443, where the hub posts make set-endpoint HUB=root@<hub-ip> URL=https://<this-server> INSECURE=1
set-endpoint rewrites the hub's upload endpoints straight to your machine (make show-endpoint to check, make restore-endpoint to undo; INSECURE=1 accepts a self-signed or IP-addressed cert). No DNS surgery required. If you would rather leave the hub's config alone, add a local DNS record instead so border.prod.energycurb.com resolves to your box (your router's local-DNS feature, or a one-line dnsmasq address=/border.prod.energycurb.com/<your-ip>). Either way the hub uploads its samples to you instead of Curb's discontinued cloud, backfilling everything it buffered while the cloud was gone. The collector keeps one SQLite file per hub, so a home's whole history is a single file you own and can delete on request.
This is a v1. It works today on the lamarr-era Curb hub I own, because that is the hardware I could get my hands on and read. The design is not Curb-specific though, the storage, the dashboard, and the analysis only care about watts per circuit over time. The plan is to bring every reachable device under one familiar interface: the old Curb hubs that still speak over wifi and ethernet, and other makers' monitors as I gain access to them, all on the same dashboard you own. Anything that will talk to you on your own network, we can keep working for you, which is the whole point the M10 gives up. If you have one gathering dust and want it freed, that is exactly the kind of thing I would love to hear about.
If you have solar in Connecticut, go find out which side of December 2021 you landed on. It matters more than you think. And if you are building the commons version of any of this, with electrons or anything else, I would genuinely love to hear about it.