I corrupted a work colleague by sharing a link to our home monitoring data. Since he wants to set up similar monitoring at his home and I had already capitalized on information and tools available on the Web, it made sense to give back to the community by publishing a brief introduction to the components that make up the initial version of our home monitoring system.
Monitoring Graphs
Here’s an example of our current monitoring graphs. The data represented in the graphs are updated every 10 minutes.
You can also interact with an on-line query tool where you can call up data for selected portions of our systems and specific date ranges of interest.
The following diagram of our home systems will eventually be incorporated into the graphing page. Sensor readings are updated every 3 minutes. Empty boxes represent locations in which I have yet to install sensors.
Components
- Temperature Sensors: DS18S20 temperature sensors from HobbyBoards.
- Humidity Sensors: TAI8540D humidity and temperature sensor from AAG.
- Monitoring Appliance: HA7Net Ethernet 1-wire Host Adapter from Embedded Data Systems.
- Software: thermd from Dan Klein and an Ubuntu system.
- Cable, taps, etc (see below)
1-Wire Network and Sensors
The 1-wire network is pretty simple. Just string a CAT5 cable to all of the places where you’d like to install the sensors. You will be able to tap into the CAT5 cable at any point in order to add a 1-wire compatible sensor. Since each 1-wire sensor has a unique serial number, you will be able to query each sensor independently even though multiple sensors are attached to the same wire (“1-wire”, get it?).
The sensors listed above only need two wires to operate: data and ground. The other conductors in the CAT5 cable can be used to supply additional voltage for other 1-wire devices or could be used as separate 1-wire networks if you have an over abundance of sensors.
I used 3-wire 19-26 gauge tap connectors from Lowes to tap each of the DS18S20 sensors into the CAT5 cable. I removed the RJ-11 ports from the TAI8540D sensors and directly wired the CAT5 conductors to the screw-in terminals.
Here’s a picture of the DS18S20 sensors:
I mounted the TAI8540D humidity and temperature sensors to the wall next to the thermostats on our main and lower levels. I also mounted one of these sensors outside under the eaves of our house to monitor the outside temperature and humidity. Finally, I plan to mount these types of sensors to the interior of the HVAC supply and return ducts and to the inside of all four legs of our ERV as well.
Monitoring air temperature is extremely simple. Just mount the DS18S20 sensors wherever you need to monitor air temperature.
Monitoring Liquid Temperatures
What about monitoring temperature of water or liquids flowing through metal pipes? e.g. Water flowing through domestic hot water pipes? Well, for now I simply zip tie the DS18S20 sensors with their flat face laying flat on the outside of the pipe. I wrapped insulation around the sensors and pipes. This approach seems to be effective, but I’ve read of another approach in which you use metallized epoxy to bond the sensor to the pipe. Presumably improving the accuracy of the reading. Based on the experience related by Phil Malone on ourcoolhouse.com, I ordered some Artic Alumina Ceramic Thermal Epoxy. I have yet to use the epoxy. Here’s a picture from Phil’s site:
1-Wire Network Interface
So what talks to the sensors? You have several options. A popular option is to buy a simple USB or serial adapter that plugs into a computer. e.g the DS9097U for $15. Then you can attach an RJ-11 connector to the end of your CAT5 cable and plug it into the host adapter. Once you’ve wired things up, you can install one of several free programs to read the sensors connected to the 1-wire network.
I chose another route. I purchased the HA7Net appliance product for $150 that supports 3 RJ-11 ports to three 1-wire networks and one ethernet port to connect to your LAN. The HA7Net polls sensors on the attached network and makes this data available on your local network. The HA7Net also includes a web-based administrative interface to set various parameters and to upload firmware updates.
Polling and Graphing Application
I use the thermd Perl application on my Ubuntu Linux home server to periodically poll the HA7Net device for sensor readings and to publish graphs of the data. Kudos to Dan Klein the author of thermd for promptly fixing an issue in reading data from the TAI8540D sensors. The thermd utility enables you to define alarm conditions and to send emails when such conditions are met. See our thermd.conf file for an example.
(I enhanced the thermd application to overlay sensor readings on a graphical representation of a home’s systems. The thermd.conf file includes extensions to supply coordinates for the position of temperature and humidity readings on a graphical image. Dan used by code changes as inspiration for building this feature into thermd itself.)
Note that thermd can monitor sensor attached via numerous devices. The basic 1-wire DS9097U and a wide range of other devices are supported by thermd. See Dan’s web site for a comparison of supported devices.
There are other, more advanced tools that I considered. WEL Logger from ourcoolhouse.com is a completely self-contained computer that monitors sensors and publishes information to a hosted service on the Internet.
The most time consuming part of the setup has been soldering leads to the DS18S20 temperature sensors. My 6-year old son enjoyed seeing old dad use a soldering iron. Here are several sources of tips for attaching wires to DS18S20 sensors:
Next Steps
- Integrate the home systems diagram with the web pages published by the thermd application
- Initially, I’ll modify the thermd tool to insert a reference to my home systems diagram at the top of the main web page produced by thermd.
- Install more sensors:
- Dehumidifier supply temp and humidity (1 sensor)
- Cold water supply from street temp
Since I’m happy with performance of the AAG humidity sensors, I’ll be ordering more of this type for the remaining humidity sensor locations.
Future Features
Eventually, I’d like to record the current state of the HVAC (cooling vs heat, stage 1, stage 2 and emergency heat) and on/off state of the dehumidifier, ERV and LP gas water heater. Some of the temperature and humidity readings aren’t relevant unless some of these subsystems are actually running. Additionally, I will be looking into how I can monitor the electric consumption of the overall house. There are various sensors on the market to record these aspects, but I need to perform more research to see which of them can be addressed via the 1-wire network.





[...] http://kampmeier.com/chris/blog/?p=56 [...]
Very nice!
BTW, I am keen to work with Dan Klein, the developer behind Thermd, to prototype the use of Flash-based Open Flash Charts 2 (OFC2). I’ve used this technology to good effect on a work project. Now I’d like to apply it to thermd. Not sure which app you are using to report on your sensor data, but you might also be interested in OFC2.
this is genius! I like the creativity combined with technical components of it.
Thanks for all the great info. Question: What does the HA7Net device really give me? It sounds to me like it only relays real-time to a 24/7 computer/server. It has no real storage capacity by itself, right? Couldn’t I just hook up the sensors directly to the server?
The key advantages for me over hooking up one or more DS9097Us have been:
Easy hook-up of numerous sensors on three separate CAT5 cables over the three built-in busses. No worries over number of devices and ensuring adequate voltage over the line. Our home is generally covered via three cable runs which map well to the HA7Net. No concerns over power as the HA7Net supplies plenty of power.
Built-in support for the Hobby Boards and AAG temp/humidity and other sensors that we’re using without needing more complex programming.
As I’ve had to debug the sensors over the years, the HA7Net web interface has been very useful in that it provides and easy way to view the status and reading of each sensor.
Support for the HA7Net device in the thermd monitoring daemon has been excellent too.
Hi
I’m building a passive house in the UK and looking for an easy windows system that can handle the same idea as above with multiple temp/humidity sensors that must be easy to set up. At present I’m struggling with Labjack U6.
Anybody have ideas?
Very impressive work, Chris! Now I want to add a lot more sensors to my own system
)
I have added the Watermark soil moisture sensor to my 1-Wire system. I’m using RRDtool and OWFS on a small NSLU2 computer, and it works great.
I have a DS18S20 on my radiator main pipe, fastened with cable binders. No problems at all, even without cooling paste or anything.
I plan on adding the rain gauge from Hobby Boards too (what can I say – I’m a garden freak
For indoor, room temperature sensors, how did you aesthetically house them?
The roughly 2″x2.5″ TAI8540D humidity and temp sensor housing doesn’t look so bad when the sticker is removed from the unit.