Home Heating Monitor

We have "hot water" heating in our house - a central oil-fired boiler that pushes super-hot water to a manifold from which small pumps circulate the water thru the various "zones" in the house. Each zone has a thermostat that controls the pump.

Something that I've always wanted to know is the "duty cycle" of all the zones. This is even more relevant now that heating oil prices have doubled over the past couple years. This winter, if I can know the exact activity of all the zones, perhaps we can reduce our oil usage and save a few bucks.

Sounds like a fun electronics project!

The trick, of course, is capturing and storing the pumps' on/off times then storing and formatting the data into an understandable format.

I've made two attempts at the project:


Version 1, started in 2008

This project failed, largely because the Rabbit is a piece of junk that I could never get working properly. Though it's programmed in the "C" language, Rabbit's flavor of C is very nonstandard, so I found it very frustrating to program the device. Additionally, I found the Rabbit's ethernet interface to be flaky... sometimes it simply wouldn't detect the network.

Version 2, started in 2011

Due to the failure of Version 1, it tok me a while to get back into the project. Two recent developments got me going again:
  1. We installed an Outdoor Wood Boiler, and I wanted to track it's performance
  2. I've gotten into using the Arduino controller, which is a dream to develop with.
So, given the new parameters, here's how I'm doing V2:

Both versions deal with the same basic issue of detecting when the house's heat pumps turn on and off, capturing that data, and storing it somewhere.

The thermostats throughout the house are connected to the pumps via a relay box which converts the thermostat control signal (1-wire!) to 120VAC for the pumps:

The relay box has an LED array on the side; an LED is lit when the corresponding pump is running:

(green for power, plus one red LED for each of the 4 zones)

One thing I can't do is attach wires directly (electrically) to the relay system - the heater maintenance guys would freak out. So I gotta do something non-invasive.

It occurred to me that a simple non-invasive way to capture the pump's state would be to:

The details of how this is done are fundamentally different in Version 1 and Version 2.
Questions? Comments? email me!