Jonathan
Jonathan Author of Robopenguins

Nest Hacked to Control a Hatch

I mashed together a bunch of projects to turn a bricked Nest thermostat into a nightlight controller for my daughter.

It’s common knowledge among parents that any action you take during bedtime will become a required step in the process. One time I let her choose the sound and color for her Hatch on our phone (a Hatch is a Bluetooth night light and sound machine that you control from an app), and from then on she wanted a chance to set it every night. This wasn’t worth fighting over, but taking out our phones at all was something we would have preferred to avoid. When I was thinking of things to do with a defunct thermostat I found, I realized it would make a great controller.

Here’s what I ended up with:

Details and source code can be found at: https://github.com/axlan/nest-hatch-controller

When I started looking into hacking a Nest I quickly found NoLongerEvil-Thermostat. This is a turn key way to unlock an old Nest that Google has deprecated to run on an alternative server. It leveraged a hack to unlock the bootloader found over a decade ago.

From there I found nest-gallery which was a vibe coded image gallery built on top of the unlocked environment. This was basically a proof of concept that all the features I needed could be implemented.

There’s already open source libraries for controlling the Hatch nightlight my daughter uses, so now I just needed to put these pieces together.

I decided to go with the following architecture:

For anyone wanted to build on this, only the first two generations of the Nest have been unlocked, and only the first generation of the Hatch can be controlled directly over BLE. A later gen Hatch would arguably be simpler to control since it could be controlled directly from the Nest over WiFi.

The ESP32 is needed to have a device with Bluetooth to relay the commands to the Hatch. I initially tested with a Python server on a laptop, but I wanted something to use as a permanent fixture.

It might have been a bit simpler to have the Nest send HTTP directly to the ESP32, but MQTT makes the system more flexible, and I already have a broker running on my LAN. MQTT allows the produces and consumers avoid direct connections which makes it easier to swap them out.

The GUI itself was mostly an exercise in minimalism. I didn’t want to mess with the brightness or volume, and I wanted to Hatch to continue to use it’s own built in alarm clock functionality. The Nest just lets her set the color and sound while its on.

Since we didn’t want it to be a distraction at night, I added a night mode that disables the GUI and just shows a little animation between the night hours.

With my plan in mind, I generated the actual code using Claude Opus 5.5 . Since this was mostly just putting together existing projects, everything was basically done in one shot with some minor style redesigns.

Down the road it would be simple to use this project to control other things around the house. This is similar to have I’ve used this toy controller for a bunch of projects.

Since I can pick up a gen 1 Nest for $20 off Ebay, I might be tempted if another use came to mind.