Fixing Amazon's Thermostat

Amazon's Smart Thermostat is not very smart when it comes to older central air systems.

Fixing Amazon's Thermostat
Really, Amazon? Why do I have to do this?

As mentioned in the main article on the Amazon Smart Thermostat, this thermostat is designed for modern central Heating/Cooling systems that can do partial heating and cooling and can efficiently keep a home at a given temperature without cycling on and off. However, older systems are either on, or off, and the way the scheduling is designed for this thermostat does not work well with these older systems.

It's described more in the article, but as an example, if you set the Heat to 68, it will turn off as soon as it reaches 69 and turn on as soon as it drops below 68. This initially feels like something you would want, but what happens on older furnaces is the system will cycle on and off every 15-20 minutes when it's hot or cold outside, which is excessive wear-and-tear on these systems. Most thermostats have a wider window, sometimes referred to as swing, which allows the house to warm up a bit beyond the desired temperature as well as allows it to drop below it. Most thermostats are 2 degrees, some 3, some even allow you to configure it. So far Amazon has not acknowledged there is any issue with their thermostat and so far has not allowed users to configure this in any way.

The Fix

Amazon appears to have no interest in fixing this bug after being reported by numerous users, including myself multiple times, so the only fix is to create routines. If your needs are simple, the routines aren't bad, but if you work from home some days of the week or have various exceptions the starts can get messy pretty fast. Here's an example of a very simple setup that effectively keeps the temperature of the house around 68 in the Winter (heating).

Rule Day Time Condition Set Temp Name of Routine
1 All 00:00-23:59 If Temp > 69 66 W - A - T Above 69
2 All 23:00 (time only) 60 W - A - T 60 at Night
3 M-F 6 (time only) 70 W - WD - Set Temp 70
4 M-F 6-23 If Temp < 67 70 W - WD - T Below 67
5 S,S 9 (time only) 70 W - SS - Set Temp 70
6 S,S 9-23 If Temp < 67 70 W - SS - T Below 67

The first routine says if the temperature exceeds 69 degrees, drop the thermostat temperature to 66. The second routine is the overnight routine which drops the temperature to 60 degrees at 23:00. The Fourth routine is to cover Monday through Friday and warm the house starting at 0600 if the temperature is below 67. The Fifth routine is the same, except starts at 0900 as we wake up later on the weekend.

The Third routine is a hack and feels like a bug; if I don't do this, the Fourth routine never executes. This makes no sense to me. I have to explicitly set the temp to 70, then after that, routines One and Four regulate the temperature in the house all day. Routine Six is the same routine hack for the weekend.

This effectively lets the house warm up until it hits 70 then cool off until it drops below 67 degrees, or a total of 3 degrees of swing.

Routines only allow integer inputs, so we can not make it 2 degrees, etc, it will always be an odd number. Remember, the thermostat by default has only 1 degree of swing. If it's set to 68, it will warm up until it hits 70, then cool off until it's below 68. Note that "Temp > 69" does mean that it reaches 70 degrees, it does not seem to evaluate any decimal places.

A Summer (Cooling) set of routines will also be necessary to complete the set. I have named them above to make them easy to identify, "W" for Winter, "A" for All Days, "WD" is Workday, and "SS" is Weekend. When it's time to switch from Heat to Cool, you will need to deactivate one set and enable the other set. You also need to set the Thermostat to Manual in the Thermostat settings itself, you don't want the Thermostat to have its own schedule which may conflict with the Routines.

How reliable are Routines? I am not sure, I will have to watch and see if this does what I expect it to do. With the hacky-feeling routines mentioned above in place, things seem to be working. Initially, a few of the Routines worked, others did not, so I did some googling and found some users saying routines can act kind of quirky initially and to get them set up the way you want them and then disable the routine and re-enable it. I did that and so far they seem to be working okay, but time will tell.

Finally; does it seem like it's working? Yes. I have graphs of my home temperature and evaluating the graphs before I made this change I see that the house temperature hovers right around 68 all day, hardly any variation at all. As mentioned above this is hard on older central systems. With the Routines, I see temperature spikes as it rises to hit 70 and shuts off and gradually cools off until it drops below 67 and then turns back on, as expected with the rules I have defined.

Below are two graphs to show the difference. Keep in mind that with the schedule, the furnace was turning on 3-4 times an hour, or 50-70 cycles! With the routines, it turned on 9 times. Both days were very similar in temperature; low around 32F and high around 45F.

Scheduled temp of 68F
Controlled by routines, targeting 68F