Posts tagged "zabbix"

When Haley was born and we converted our old guest room into a nursery, one of the things we worried about was maintaining a consistent not-too-hot, not-too-cold temperature in her room throughout the night.  Since her room is heated by the furnace in the basement, it is on a separate thermostat than the rest of the second floor, including our bedroom.  We were concerned that the temperature in her room could be totally different than in our bedroom and we would never know that it was way too hot or too cold.  So, we started looking for a way to keep tabs on what was going on in her room temperature-wise.

Initially, we bought a baby monitor that also measured temperature and would alert us if it fell (or rose) outside of the range we set as acceptable.


It worked just fine for letting us know when the temperature was already too warm or cold in her room, but didn’t really help us identify what we could do to remedy the situation and maintain a more consistently comfortable temperature for her all the time.  For example, her room ran pretty chilly in the evening and was toward the lower end of our acceptable temperature range when we went to bed, but was about 8-10 degrees warmer (and pretty stuffy) by the time we got her up in the morning … and we weren’t sure exactly what to change to help that.  We really felt like we would be able to regulate the temperature better if we could see the temperature changes in her room graphed over time.

So, we did some research online and eventually bought the AcuRite AcuLink Internet Bridge and a few wireless temperature sensors a couple of months ago.  We liked that we’d be able to wirelessly monitor the temperature in Haley’s room (as well as a few other locations in the house) and view graphs of that data over time.


The system only took a few minutes to set up and basically worked as advertised.  We could monitor the temperature online as well as on our iPhones and iPad.  Here’s what our dashboard looks like online:


The website and app both include a graph of the temperature data captured by the sensors, but we were disappointed in the level of detail in those graphs when we started really trying to figure out what was going on in Haley’s room.  It was hard to zoom in and view the data in a way that could really help us understand what was happening.  At the same time, we also felt like it would be more useful to see the temperature data in her room graphed next to other data, like the times when the furnace was running, which we were already capturing and graphing using Zabbix (open-source monitoring software).

So, we decided an ideal solution for us would be to forward the temperature data being captured by the AcuLink system into Zabbix also where we could build our own graphs using that information.  The only problem was that there wasn’t an out-of-the-box way to automatically feed the temperature data from the AcuLink bridge to an external tool for further analysis, so Chad started searching online and found a few different approaches that others had taken when trying to solve this problem.  The one he liked the best (and that we wound up implementing) is described in a lot of good detail on this website.  It turned out to be pretty quick and painless to set up and we liked that it allowed us to capture the temperature data without interfering with how the sensors or bridge would normally function.

Here’s one (of several) graphs we configured to display temperature data in Zabbix:


With the temperature data from Haley’s room being forwarded to Zabbix, it was a simple matter to create some graphs that helped to highlight patterns over time and help us figure out how to keep her room more comfortable.  In the example I mentioned above, where her room rose an average of 8-10 degrees overnight even though it started really chilly, we were able to determine from the graphs in Zabbix that because her room was maintaining heat better than the dining room (where the thermostat is located), the temperature just gradually crept up over night, getting a little warmer (and staying a little warmer) each time the furnace ran.

As we thought about how to fix this, we tried adjusting the program for the downstairs thermostat to just run a little cooler, but that didn’t actually fix the problem since her room still held the heat from whenever the furnace ran better than the rest of the house.  What finally did help was adjusting the baffles on the vent in her room.  We basically took one out and then shut the register vent so that about half of the air coming into her room was blocked.



This way, each time the furnace runs, her room doesn’t get quite as much hot air, so the temperature doesn’t rise quite as high.  It actually turned out to be a really simple fix once we better understood what was happening with the temperature as the furnace ran overnight.

Anyway, Haley’s room is just one example where being able to review temperature data in more detail turned out to be really helpful.  The use case I’m way more excited about, though, is being able to review differences in temperature as we make improvements to the house, like when we add some insulation or replace a leaky door.  It’ll probably be really hard to get a good comparison because there are so many variables in play, but wouldn’t it be cool (in a really geeky way) if we could actually measure the difference those improvements made?  It’s an admirable goal, at least … right?

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?