My dream thermostat (2024)

48 leontrolski 67 5/6/2025, 10:11:24 PM leontrolski.github.io ↗

Comments (67)

biotinker · 19h ago
You want home assistant, as other comments have noted.

I have a reasonably complex set of behavior set up. I live in Bend, Oregon at 4000 feet. This is somewhere with hot sunny days, cold nights, and sometimes a lot of smoke. The effect on the interior of the house based on upcoming weather is highly predictable.

My rules look something like this:

If tomorrow's high temperature is above 85, then as today as soon as outdoor temperature drops below indoor temperature, open all the windows and turn on the attic fan until either interior temp is below 62 or outdoor temp rises above indoor, whichever comes first. Unless the AQI outside goes over 100 for more than 2 minutes, in which case close all the windows and turn on the fan/AC to clean the air. All the while, if the house rises above temperature X, cool it to temperature Y.

Additionally, the upstairs heatpump is located in an uninsulated attic, which in winter means that heating is somewhat inefficient and we want to run it a minimal count of times to avoid warmup periods. So we program in our own hysteresis, so that there's a 6-degree difference between when the heat kicks on, and when it turns off.

No one is going to make a dream thermostat that meets your needs out of the box for you, because no one else has your local needs. The best you can do is give yourself the tools to make your reality how you want it.

behnamoh · 20h ago
Am I the only one who naively clicked on all the buttons hoping to see them flick? :)
hex4def6 · 19h ago
ignorantguy · 19h ago
I did the same thing!!
barnas2 · 20h ago
You could easily make that. Thermostats are very simple concepts. Basic A/C systems are 4 wires. Power, heat, cool, fan. If you want to cool the house, you connect power to "cool" and "fan". For heat, connect "heat" and "fan". If you just want to move air, then just connect the fan. Throw in some hysteresis so you don't short-cycle the compressor. With a raspberry pi, temp sensor, screen, and a relay block (the voltages are too high for a pi), you can probably build this in an afternoon/weekend.

If you have heat pumps or a multiple zone system, or a few other things they can get more complex, but they still aren't super complicated.

bityard · 19h ago
Yes! On my long list of things to do when I get the elusive "round tuit" is to build an open-source touchscreen thermostat using cheap ubiquitous off-the-shelf parts. Probably something like a CYD (cheap yellow display, as they are known), an ESP32 or RP3020, a good temp sensor, and some relays. The goal is to make it 100% compatible with Home Assistant as well as offer its own API and web interface to the local network. 3D print your case of choice.

I have run across a few open source thermostats, but either they are some hobbyist's one-off project, or they are geared toward very different systems from the common North American forced-air furnace and whole-house AC unit combo.

Before the but-what-about-ers start brigading in, yes it is possible to make this system safe against engineering or software defects. They make analog non-adjustable temperature sensors that "trip" below a certain temperature, you wire one in parallel with your heat wires near the furnace and you house will never go below freezing. (Very common in rentals.) If you're concerned about over-heating, add another temp sensor and relay and put it in series. Put time-out timers on every function. Have alerts sent to your phone. Add a SIM card and modem if you don't trust your wifi. And so on, tastefully adjusted to your own personal level of paranoia.

cstrahan · 19h ago
I just want a thermostat that gives me the option to specify that I want it to maintain a target temperature, and have it automatically switch between cooling and heating.

The one I have in the apartment I’m renting only gives Cool vs Heat. With Texas being as finicky as it is this time of year, the temperature swings from frigidly cold to swelteringly hot day to day, and with my ADHD and lack of connection to my body, I find myself wondering why I’m feeling run down and mentally foggy, and then I realize it’s because I had to switch to Heat yesterday (because the house dropped down to 60F) and today the apartment is now at 85F, and I’ve been progressively overheating for the past 5 hours or so.

lantry · 16h ago
nest thermostats (and probably many others) can do this. You set an acceptable temperature range; the heat will activate if it falls below that range, and the cooling will activate if it rises above that range.
quickthrowman · 19h ago
The key to making a functional automatic switch between heating and cooling is an outdoor air temp sensor. You could whip up something with a controller, a few relays, and two temp sensors, one for inside and one for outside.

A thermostat is dead simple, 24VAC and 4 wires: heat, cool, fan, power. You’d need to experiment and figure out where the point will be best to switch from heating to cooling based on the outdoor air temp, the controller would control this.

There might be commercial products available that do this already, but if they don’t have an outdoor air temp sensor, it won’t work.

FWIW I bid and run commercial building automation installations.

Ecco · 19h ago
Personally my dream thermostat would be Amazon’s smart thermostat, but with a firmware that allows for local control by home assistant.

Here’s why I think the hardware is so great:

- Simple, high-contrast temperature display (7-segment led)

- Just a few buttons to override temp/mode manually

- Reliable sensor (it’s made by Honeywell)

- Nice industrial design (doesn’t get in the way)

- Low price point (got it for $49)

I really wish someone would find a way to unlock their firmware. I tried to mess with it and figured it did MQTT (yay!) but it does certificate pinning :-/ I even opened one up but couldn’t find an easy way to dump the firmware off of its i.MX chip.

MostlyStable · 19h ago
What I want is a thermostat has basic controls on the device such that it can do the basics (heat, cool, circulate air, hold temperature at setpoint), but also passes on all the wire states over either wifi, zigbee, or one of the other home automation standards so that I can make arbitrarily complex control boards and routines through homeassistant.

This probably exists for the really basic 4 wire versions, but I have a more complicated 8-wire Lennox thermostat and I haven't been able to find something like this.

floating-io · 19h ago
This right here is why I bought the slightly lower-end two-speed system instead of the variable-speed system (it's a Trane, I believe). I'm just not interested in getting tied into their proprietary ecosystem.

I have a relatively simple Honeywell Z-Wave thermostat, and it works great with Home Assistant.

asielen · 19h ago
Ecobee may be able to support your system.

https://support.ecobee.com/s/articles/What-do-my-thermostat-...

MostlyStable · 18h ago
Yeah, this thread got me to re-investigate this again (it's been several years), and Ecobee should support it (although I'd lose connection to the external temp sensor, but that's not a big deal, I have my own weather station already). I may finally pull the trigger because I hate the way that the "smart" thermostat that came with my system works.
Ecco · 19h ago
Agreed. I really like the hardware (and price point) of Amazon’s smart thermostat. Unfortunately it’s all proprietary and locked to Alexa. I really hope someone unlocks them at some point.
kimixa · 19h ago
I think this is already the "standard" interface for physical thermostats in the UK - the house where I was growing up in the UK, 4 timers (that can be selected based on "day of week"), a "1 hour boost" button, and a whole system "on/off".

This was at latest mid-90s, so not exactly "high tech". I don't think it's uncommon, as both random rented student house and the first place I rented while working had pretty much the same thing (though I think the student house only had 2 timers and no "day" functionality?). They didn't have air conditioning though, as that's not common residentially. And unless the allowed variance is also really wide (probably too wide for comfort in some situations), I don't really want the "same" temperature to be used for heat and cooling.

I'm surprised how many people I know IRL in the states that think this sort of thing is some fundamental tech limitation - like you need the latest fancy "smart" thermostat when 99% of what you will actually use it for is just "not the cheapest-possible" dumb one.

herpdyderp · 19h ago
My house came with a Nest installed and I think it looks cool so I left it in but never gave it the wifi password and turned off absolutely all the crazy "smart" features it had. Now it's a really neat looking dumb thermostat and I want nothing else.
418tpot · 19h ago
My house also came with a nest, and I also never connected it to my network, but for me nest was a terrible dumb thermostat.

It constantly tried to infer schedules and change the temperature on its own. I would set the temperature, come back an hour later to find that it changed itself back to what it thought it should be.

Also, there was no way to just activate the fan. I live in a very temperate climate and I generally like to keep a few windows open but run the fan to circulate air through the house.

I sold the nest and now a $15 dumb thermostat from the local hardware store now lets me set a temperature and it won't randomly change it when it feels like it. And it has a switch to turn on the fan.

herpdyderp · 5h ago
I managed to disable the scheduling system, as even that was too smart for me (I had similar troubles as you). All it does now is: set temperature; allow switching between heat, cold, both, or none; allow turning on fan-only for X hours. Maybe yours wasn't wired correctly for the fan? No idea.
SoftTalker · 17h ago
I want the UI of an old Honeywell mercury switch thermostat. Heat/Cool mode switch and dial to set the desired temperature. That’s it. Absolutely simple to understand and operate.
mreome · 16h ago
They still make (mercury free) versions of these. The Heat/Cool version is CT87N1001 and the Heat-Only version is CT87K1004.

The last apartment I lived in installed new "smart" thermostats throughout the building. It always seemed to change the target temperature at random and I got so frustrated that I swapped it out with a dumb Honeywell one (and swapped it back when I moved out). I never found having to make the occasional manual adjustment to be an issue.

vessenes · 20h ago
I think you want Home Assistant. Now we ask, which thermostats let Home Assistant program them without cloud connectivity? I have no idea, but last time I looked, it was a rabbit hole.
jhot · 13h ago
GoControl has a zwave thermostat that works well. Has no smarts of it's own (behaves like a pretty standard thermostat with heat, cool, and fan settings) but can be changed via home assistant so I've written a pretty extensive algorithm to meet my needs.
broknbottle · 19h ago
dpifke · 17h ago
I have two of these (for separate HVAC systems on top and bottom floors of my house) and can highly recommend

The killer feature of Home Assistant vs. my previous Nest setup came when I added door and window sensors, and programmed HA to pause heating/AC whenever doors or windows are open. I no longer turn into my father, who I remember shouting at us kids, "close the door, I'm not paying to air condition the outside!"

amadeusw · 20h ago
ecobee works locally (without its cloud services) through Apple HomeKit.
noduerme · 19h ago
I have an ecobee. Quite nice and easy to program on the panel itself if you choose not to connect it to your wifi at all.

One oddity with my ecobee - if it's not connected to wifi, the clock runs fast. Sometimes gaining a whole minute every few days.

chipsa · 19h ago
Cheap oscillator because they expect it to be network connected and be corrected by NTP. Why put in a good clock when a cheap one will do?
bironran · 19h ago
Piggybacking on this, I just want an alarm that I could tell “not tomorrow please, I’m off work. But keep the schedule otherwise, ok?”

Apparently that’s touch to ask in 2025.

__jonas · 19h ago
The iPhone does that, when you have a sleep schedule set it will show you the alarm for the coming day and when you go turn it off it turns it off for the next day only (it prompts you to confirm you want to just skip the next one rather than edit the schedule). They've got that one figured out, works really well for me.
bironran · 17h ago
This (and all the rest) are true. But why isn’t every repeated alarm on (phone, calendar) equipped with “skip N nexts”?
gregschlom · 19h ago
Pixel phones have that (pause for a number of days) - not sure about other Android or iOS
bigstrat2003 · 17h ago
Android in general has it. I have a Nokia phone that does the same thing.
brianpan · 19h ago
If you happen to be an iOS user you can setup a bedtime. Then there are controls to change your sleep/wake times for "next wake up only". Or to skip for a day.
bhaney · 19h ago
The default alarm system of iOS allows for this
bhaney · 20h ago
If you have any familiarity with basic electronics at all, I strongly recommend building your own thermostat. It's very easy to connect a few relays and a temperature sensor to an off-the-shelf microcontroller. Give it any interface you want. Mine is an ESP-32 with a simple API that I control from a little web app or some basic push buttons on the thermostat itself in case the network is down.
bityard · 19h ago
Do you by any chance have your documented anywhere? I want to build my own. (Eventually. One of these days. When I get some spare time, of course. Perhaps in retirement...)
bhaney · 19h ago
I have a very old blog post [1] that's basically a build log of the first thermostat I built (plus some rambling). It has a link to the firmware repo and a follow-up post about the API design near the end if you just want to skip to that. I wouldn't really call it "documentation" but it should be enough to point you in the right direction.

I've changed and rebuilt it a few times since then. The version in that blog post expects the microcontroller to have external USB power (I had an outlet with a USB port right next to the thermostat mount, so I didn't care), but you can trivially wire in any voltage converter capable of 24VAC->5VDC/3.3VDC to remove that requirement. I plugged an automotive voltage converter module I had lying around into the first design at some point, and then the next design had a proper rectifier and buck converter to accomplish the same thing.

[1] https://blog.benhaney.com/2019/03/26/building-a-thermostat

bityard · 1h ago
Thanks!
Jtsummers · 20h ago
You can get something like that, though not that precise layout. I had one like that for years with a better interface than your sketch (until I forgot to take it with me from an apartment). It wasn't even "smart" (in the current internet-connected sense, I think it was still labeled as "smart" at the time since it was programmable).
matthewdgreen · 20h ago
Since we're dreaming about appliances: could someone please design a simple computer-controlled valve that shuts off the water and drains the pipes when the house temperature drops below a certain point? We very nearly had a $100,000+ home repair when a burst pipe shorted out our furnace this winter. This cannot be a very hard device to build?
jyoung8607 · 19h ago
The controllable shutoff valves are already a thing, on the market. They even measure flow rates and look for slow leaks and notify you in an app.

Draining the pipes isn't that simple, and even if you did, you still have things like a water heater, toilets, softeners, filters, and expansion tanks. You also wouldn't get the water sitting in drain traps; winterizing a house or RV involves pouring a little RV antifreeze down each drain.

quickthrowman · 19h ago
It’s easy to control a valve actuator based on a space temperature sensor reading, monitor the space temp and when it hits setpoint, send a signal to the valve actuator to open up. Add in a flowmeter on your drain pipe and you can even close the valve when the water is done draining. Probably there is a fitting with a valve and flowmeter in one.

The difficult part is opening up all of the plumbing fixtures and taps automatically, I haven’t tried draining water out of a home’s plumbing system without opening all of the taps and am unsure if it works.

If you have a well, you’ll need to drain the expansion tank and turn off the water pump, the latter can be achieved with a relay that breaks power to the pump but I’m unsure of how to handle the former.

You’ll also need to automate filling the traps with antifreeze, unless you’re cool with replacing sink traps and toilets after a freeze event.

LastTrain · 20h ago
Hey if you love to write requirements like "make it a bit warmer for two hours" you should come work at my place.
teekert · 20h ago
I live in the Netherlands, all our central furnaces speak OpenTherm, and still the best option is a Nest v3, it’s depressing (the device is beautiful but it should just have a local API).

Perhaps next time I’ll make something like that, using home assistant you can easily turn any switch with any temp sensor into a thermostat.

throw0101b · 7h ago
TIL:

> OpenTherm (OT) is a standard communications protocol used in central heating systems for the communication between central heating appliances and a thermostatic controllers.[1] As a standard, OpenTherm is independent of any single manufacturer. A controller from one manufacturer can in principle be used to control a boiler from another. However, OpenTherm controllers and boilers do not always work properly together. The OpenTherm standard comprises a number of optional features and some devices may include manufacturer-specific features. The presence or absence of such features may impair compatibility with other OpenTherm devices.

* https://en.wikipedia.org/wiki/OpenTherm

* 2.2 spec PDF: http://files.domoticaforum.eu/uploads/Manuals/Opentherm/Open...

* https://www.opentherm.eu

burnte · 20h ago
Nest Thermostats have done this for over a decade. There are lots of other brands, too.
DaiPlusPlus · 20h ago
The post isn't about what Nest doesn't do - it's about smart-thermostats like Nest having straightforward UIs and excessive amounts of IoT bollocks and seemingly arbitrary user-restrictions (e.g. Nest won't let you get raw access to temperature history data directly from the device: you can only get it via flashy GUIs in Google's apps (no API or CSV access) and even crazier: only for 10 days. Google is meant to be the king of Big Data but storing historical thermostat temperature data is too much for google, it seems...).
0_____0 · 19h ago
Engineering: Part count is too high, redo this with max one screen and three buttons. You know 7 screens costs almost 7 times as much as one screen right?

Industrial Design: [Drops a brick with a photo of Dieter Rams' original Braun radio taped to it onto your head from 3 storeys up]

Edit: non-joke feedback- this is great from a techie perspective but it's too much actual hardware complexity and visual presence for a task that will be done maybe twice per season. You have added about 50% to the cost of goods sold to do this - is it worth it? Will people buy it? Yes I understand this isn't a totally serious device proposal, but I would love people to try to understand why things end up looking like they do!

degamad · 19h ago
Who says those buttons have to be physical? With the near-ubiquity of touchscreen interfaces, that should be trivial to build for dirt cheap.
0_____0 · 2h ago
I mean that's what my current thermostat actually is. Once you've gone back to touchscreen, as a designer you'll realize that people can't see the tiny text, and you have to display contextually relevant information in large type, and you're back to a touchscreen with menus.
bhaney · 19h ago
Where are you getting touchscreens large enough to comfortably fit that entire interface for dirt cheap?
Raed667 · 20h ago
Yeah that won't work for me, here are some missing features:

- I want a button to make it a little colder for a period of 30-45 minutes

- I want a toggle to alternate for days where I WFH

- I want a 3rd time range: noon to 2PM

vortico · 20h ago
I want to specify heat, cool, or auto. I don't want to cool in the winter under any circumstances. I can simply open a window. Vise versa for the summer.
bob1029 · 20h ago
sigmaisaletter · 20h ago
Oh, and if the internet goes down, the programmed schedule should still work. Pretty please?
atonse · 20h ago
Honestly this is what most of us want.

I feel that while Nest changed the whole scene, it never lived up to its “smart” thermostat promise.

And the schedule editor is way too cumbersome. Something like the above is what most people would use.

sokoloff · 20h ago
The schedule editor in the Nest App is “way too cumbersome”? I found it one of the most intuitive and just flexible enough editors of the various ones I tried (a relative judgment, and it was well past good enough in absolute terms).
atonse · 17h ago
I meant the part where you have to copy paste each day to get the same schedule.

For a given day it’s easy.

sokoloff · 6h ago
That's a fair point.

When I noticed that hitch in the setup process, I found the solution more clever and elegant rather than cumbersome, but the fact that I specifically recall that step from 18+ months ago means that it definitely stuck out and I bumped into it. In any case, it was leagues less cumbersome than "push this button a bunch of times to change whichever field is blinking, then tap this button to change which field is blinking" of older T-stats.

throw0101b · 7h ago
I don't see anything about relative humidity (RH).

While temperature is important, if you have a well-seal and well-insulated house (i.e., up to modern code), your AC won't be running that much, and so the incidental dehumidification you get with it won't happen, which will lead to an RH that creeps up.

A stand-alone whole house dehumidifier is thus often needed to deal with RH.

* https://en.wikipedia.org/wiki/Hygrometer

Animats · 20h ago
15 buttons?
wpm · 20h ago
I count 13, plus two 2-pos toggle switches.

Either this or some awful tap tap tap modal interface.

pphysch · 20h ago
and 7 displays, though probably could get down to 3 without much compromise.
GaggiX · 20h ago
This could be a nice project to diy.
singpolyma3 · 17h ago
Everyone looking at this beautiful simple UI that does only what everyone actually wants and commenting that what you actually want is some over complicated smart device is totally missing the point.
ipunchghosts · 19h ago
My Honeywell does everything minus the left pane. Am I missing something?