Created by a human, with a brain badgeA badge with a character next to the text "Web 14," indicating that the site may contain slightly offensive materialDo What The Fuck You Want To Public License badgeD D Race Network badgemi toki e Toki Ponamade with MY OWN TWO PAWS badgeNo cookies badgeNo tracking or analytics badgeMade with server-side scripting badgeHosted on home internet badge


Learn To Code

A Problem

Here is a graph of the temperature in my ~1000-square-foot apartment, as recorded from my desk by an AirGradient:
A 64-hour temperature graph. The temperature ranges from 75 degrees to 79 degrees, with cooling happening at seemingly random times.
That is a pretty terrible in my opinion, considering that I have my preferences set to ±0.5°. My apartment has an ecobee3 lite and, as bad as it is, every other thermostat I have lived with has done an equally poor job.

Part of the issue seems to be the atrocious quality of its temperature sensor. The sensor used for the above graph is a calibrated Sensirion SHT40 which costs a whopping $4.76. Here is what the ecobee, a $169 release MSRP device, sees:
A 64-hour temperature graph. The temperature ranges from 73 degrees to 75.5 degrees.
Also note that the ecobee's measurements range from 73-75.6°, a 2.6° swing, while the SHT40's range from 75.1-79.2°, a 4.1° swing. However, it also seems to do whatever the hell it feels like on top of the bad data. Why is it sometimes beginning to cool at 75°, and sometimes at 75.5? Why is it gradually lowering the temperature on Thursday night? I have screenshots of much worse examples, but I did not save the ecobee's graphs back then so they might have been the sensor's fault.

I did lower the temperature a bit for Friday because a handyman was going to pop in, not that it did anything according to the more accurate temperature graph. Here is some more data:
A graph overlaying the SHT40 temperature measurement, the ecobee temperature measurement, and the ecobee target temperatures. The target high temperature was droped from 75 to 74 degrees for most of Friday. This is reflected in the ecobee temperature but not the SHT40's.

A Solution

Were I not a programmer, my response to this would probably be to complain to family and friends, and otherwise simply suffer. Worse, I would be malding at any point in the future when forced to baby the temperature setting in order to stay comfortable.
No need to worry, however! I know how to code! In fact, Home Assistant which these graphs are from has drag-and-drop block coding. "If the temperature is below my setting minus leeway value, set the thermostat temperature to 80 degrees. If the temperature is above my setting and the HVAC has been running for more than minimum runtime (5 minutes), set the thermostat temperature to 60 degrees." OK, let's see how that looks across, say, a month:
A temperature graph for the month of February. The temperature stays rock solid at 75 degrees aside from deviations where it was clearly turned off or briefly adjusted higher or lower.

Much, much, much better. Does everyone need to attend a bootcamp in fear of FOMO? No. However, there are innumerable ways to improve your quality of life with a slightly-more-than-basic understanding of computers. I implement things like this all the time and then they sit there, chugging along with most never receiving maintaince or an update, making me a little bit happier for the rest of my days.

Postscript

I have a slightly-more-than-slightly-more-than-basic understanding :) so I have some extra features. If I am playing music (and do not have "block HVAC," "prioritize music," "music ignore HVAC" settings toggled on), it and my HVAC take turns. I think that is my highlight of this decade, honestly, I can't tell you how great it is. (My HVAC is rather loud.) I also have smart reheating based on hourly electricity prices:
A week-long temperature graph. The temperature stays rock solid at 75 degrees while "at home" is on, falls while it is off, and recovers while electricity prices are low soon before it turns on again.
This image is from December when I added smart reheating (and not-pictured preheating), and the others are from this week. I had not implemented a way for both heating and cooling at once, only heating or cooling, but it appears I will have to. Living with the ecobee at the wheel for the past few weeks has been a painful reminder of how bad I used to have it.