DIY Thermostat
Last year we got a Daikin air conditioner and upgraded our thermostat to match. Our first A/C in Seattle, which has like 2 weeks a year that are actually hot. Daikin thermostat, Daikin A/C, Coleman gas furnace. The furnace is dumb, the A/C is “smart”, so needs a matching thermostat. At least that is what we were told.
Sadly, the thermostat doesn’t work. At least not while the furnace is on.
The behavior is that when the furnace is off, the thermostat will measure the room temperature accurately. But when it switches on, it goes haywire thinking the room is getting cooler when it is actually getting warmer.
The result is that we have had to basically turn the thermostat manually up, down, up, down, up, down, up, down all day.
A few days ago I found out that our “smart” thermostat talks to Daikin “in the cloud”, and that there is a developer API that can be used to control the thermostat. So I built my own thermostat that measures the room temp and overrides the Daikin behavior by changing its set point to above or below whatever it thinks the room temperature is. So, now, the DIY thermostat goes set point up, set point down, set point up all day automatically for us.
And the temperature in the house is way, way more flat. As you can see in the image below (taken from a Govee brand thermometer that sits nearby).

Parts
- Lilygo TTGO ESP32 microcontroller that I’ve used for other projects.
- BME280 temperature sensor that I also had from another project.
- Passive 5v Buzzer (should be 3.3v but I had 5v and it works).
Implementation

I could have had the esp32 talk directly to the Daikin cloud api, but inserting a service inbetween gave me easy logging, and a nicer interface for the ESP32 to talk to.
In the photo below, you’ll see that the sensor sits high above the microcontroller. This is because the MCU emits heat and the sensor is very sensitive. Off to the side would have been even better.
I took the photos below right after getting the first pass to work and so they do not include the buzzer, which I added later. The buzzer sits on the breadboard and buzzes dah-dee when it goes on and dee-dah when it goes off. I added the buzzer thinking it would give me a visceral sense of state changes and if they were aligning when I would have wanted to adjust the thermostat myself. In actual fact, I ended up not needing the buzzer, since the DIY thermostat worked way, way better than I anticipated and rather than acting when I would have, saving me energy, it actually just keeps the temperature flat. No more “Brrr... OMG I’m overheating... Brrr...” like it was before.
If we continue to not fix our thermostat, I might build an enclosure for this project and give it an “antennae” for the sensor to sit atop.


- ← Previous
New Yorker Fiction I Read in 2025