The Best Smart Thermostat for Home Automation
One of the first few things even non-enthusiast users make “smart” in their home is the Thermostat. This is largely because products like the Google Nest Thermostat and the Ecobee Thermostat do a reasonably good job of acting as standalone devices to handle climate control. They are even equipped with learning mechanisms to predict when you’ll be home or away and set your thermostat accordingly.
But, as Home Automators we often have sensors that will provide a lot more data than these closed ecosystems have access to. So the question becomes, which products work best at accepting additional inputs?
Both the Nest and Ecobee Thermostats offer external temperature and occupancy sensors. If the only thing you’re automating in your home is climate control and you’re willing to pay a premium for these sensors, you can simply buy into an ecosystem and call it done.
However, if you’re like me, you’re using climate sensors and occupancy sensors for more than just climate control. You can find ways to tap into the limited sensor data produced by these systems, or you find a thermostat that will accept data from anywhere.
Take the Ecobee Remote Sensors, for example. These devices require an Ecobee thermostat to operate. Access to the data they produce is available via Cloud API only. And they only update every 30 minutes. While this is enough for climate control, it’s not enough for motion activated lighting, for instance.
I was unable to find any way to use non-branded sensor data with either the Nest or Ecobee systems; it’s their sensors or nothing at all. So I went searching for a better way.
The GoControl TBZ48 is easily the best device for this job.
There are pros and cons, of course.
Arguably, it doesn’t look quite as nice as the Google Nest or Ecobee Thermostats. However, it’s by no means ugly.
It includes NONE of the “smart things” these other thermostats do. It’s just a regular thermostat in that regard. But, in most cases, we don’t want this “intelligence” anyway, since we’ll be controlling every aspect of its operation from our own software.
It’s a ZWave Plus device, which means you’ll need a ZWave network. If this is the only ZWave device you’ll use, you can see this as an added expense. However, ZWave is a very flexible and useful protocol that serves lots of needs in an Automated Home.
It is not in any way dependent on any cloud. No one has your data and it’ll work regardless of the status of your Internet connection.
It offers complete control via ZWave commands. This includes the ability to send a remote temperature reading from whatever source, for it to use as the “current temperature”.
It’s quite a bit less expensive than the Google and Ecobee Thermostats; about $100USD at the time of writing, $50USD if you buy it used.
It can be powered by 4 AA batteries (that last over a year in my experience) or via C-Wire. So it can accommodate almost any setup.
Now let’s get to the interesting part: integrating it into your Home Automation System.
This device accepts a Remote Sensor Temperature via ZWave Configuration.
First you want to set the “Remote Sensor Node Number” to “1”. This only has to be done once and it’s what tells the thermostat that you’ll be sending your own local temperature data. This is set with Configuration Parameter “43” in Command Class “112”.
Next, you can send whatever temperature you calculate for your home as “Remote Sensor Temperature” in Configuration Parameter “46” of Command Class “112”.
It has a failsafe built in that, if the Remote Temperature is not updated within 5 minutes, it reverts back to using the onboard temperature sensor. This way, in the event of sensor failure, you’re not left with a system that is heating or cooling forever because the current temperature isn’t updating. Therefore, you’ll want to make sure you send a temperature at intervals of less than 5 minutes.
And that’s it.
In my home, I calculate the current temperature based on which rooms are occupied. This allows the rooms we’re in to be the most comfortable instead of the room the thermostat is in getting the focus. I take an average of all the occupied rooms and send it as the Remote Temperature. If no rooms are occupied, I send the average of every room.
It works great! If I walk into a previously unoccupied room that is a little bit chilly, before I can even take out my phone to “turn the heat up”, it kicks in and starts providing heat.