A couple of months ago, we swapped out our old programmable thermostats with new Nest learning thermostats … and we’ve been really happy with them. Although there’s a lot we like about the Nest, one of the features we’ve missed from the beginning is the ability to analyze all of the data collected by the thermostat. Access to this data is listed as one of the top requested enhancements on the Nest community site, but as of now, the only data that’s available is the energy usage graphs for the past 10 days. While this is an ok start, the data isn’t viewable until the next day and this history isn’t there to be able to do any meaningful analysis.
While we still hope that the Nest provides official access to all of the behind the scenes data in the future, Chad spent some time this weekend working on an alternate solution that we think will be really useful in the meantime. It’s based on this (unofficial) Nest Learning Thermostat API, which accesses the Nest website to retrieve status information for both of our thermostats.
We’ve used the API in a simple .php script that’s scheduled as a cron job on our server. Once we’ve retrieved the information from the Nest website, we’re using Zabbix as the logging and charting platform for putting together some graphs that provide an at-a-glace overview of temperature, humidity, and status (running or not) for each thermostat. Here’s a snapshot of the graphs we’ve configured initially:
While Zabbix may not be the obvious choice for charting temperature-related data, we already had it in place for monitoring availability of our networked devices, so it was a matter of simple configuration to add the Nest data to it. In addition to enabling the charting functionality, Zabbix also provides the ability to configure alerts based on trigger points. We’re still thinking through how we’ll make the best use of this, but it would be a simple thing to send email or SMS alerts when the furnace is running, when the temperature has reached (or fallen below) a threshold, when the furnace hasn’t ran in a defined period of time, etc. This functionality has also been logged as a feature request on the Nest community site.
We’ve initially chosen to poll the Nest website for updated data every 5 minutes, which accounts for latency between the Nest thermostats and the data on the website. Although it would be better if we could connect directly to the thermostats for actual real-time data rather than going to the website for updates, the 5 minute interval is certainly close enough to real-time to meet our needs.
While we’ve only been logging data from the Nest thermostats for a little over a day, we’ve already noticed a couple of things: 1-Nest seems to do really well at keeping the house temperature within a pretty tight range of the set point temperature. 2-The closer-to-real-time nature of the data is allowing us to pick out some trends that will likely influence our behavior going forward. For example, the upstairs furnace runs longer to maintain the same temperature when the door to the master bedroom (where the thermostat is located) is closed.
Pretty cool, huh?