Monthly Archives: October 2013

Space Heater Controlled by Z-Wave Thermostat

A Case Study in Home Automation

In lieu of actually writing a more comprehensive post about my foray into home automation, I decided to begin instead with something more simple: a problem, and its overly-complicated, but totally awesome solution.

My bot-so-smart source of warmth.

My not-so-smart source of warmth.

I currently depend on this heater to keep my basement dwelling habitable.  While the furnace that heats the upper levels sends a token amount of semi-warm air in my general direction, it doesn’t seem too concerned with my comfort.  So, like most people in this situation, I use a glorified toaster to stave off hypothermia.  Actually, “glorified” is being a bit generous – electric space heaters are basically toasters that can’t even handle the simple task of making toast.  Their sole purpose in life is to consume as many kWh as they can get away with and not trip a circuit breaker in the process.  In my experience, they often fail even at this.  In the same way that you would not expect a toaster to keep your room at a constant 70 degrees (while also browning your morning bagel), it soon became obvious that the “thermostat” knob on my space heater contained the functionally of a particularly bland toddler toy.  And so I turned to HomeSeer.

The Solution

"Smart" Thermostat - powered by Z-Wave

“Smart” Thermostat – powered by Z-Wave

How to get one’s thermostat to control not only the furnace, but also one (or more) remote space heaters?  The amature electrician might do something like this, wiring the two directly together, but I didn’t want “wiring” – I wanted wireless.  So the geek instead turned to Z-Wave (a wireless home automation protocol) and HomeSeer (automation software), attached the space heater to a GE 45604 appliance module, and set up some events to define the relationship between thermostat and heater.  Because HomeSeer constantly receives information about the status of the thermostat (current temperature, set point, operating mode etc…), it was easy enough to use these conditions to tell the heater when to turn on or off via the Z-Wave module it was plugged into:

  1. If thermostat is “heating” –> Turn space heater on.
  2. If  thermostat is “idle” –> Turn space heater off.


Really.  It was that simple.  The beauty of this simplicity, is that changing the set point using the buttons on the thermostat would also affect the space heater – no extra programming needed.  However, there was still the issue of occupancy.  I didn’t always want the space heater sucking its 1.5kW just because it was less than 70 degrees.  The first step to solving this issue was easy enough:

3. If time is between 11:00pm and 6:00am –> Remain off.

That solved the problem for the night hours, but what about when I was away from home?  This required a bit of trickery requiring my Android smartphone and Tasker.  I created a profile in Tasker that would detect when the phone was connected to the home’s Wi-Fi network.  As long as it remained connected, it would run a python script (using SL4A) every 5 minutes that activated a virtual device in HomeSeer.  This acted as a sort of “dead man’s switch”, as HomeSeer would only register me as being home if the aforementioned virtual device had been triggered within the last 10 minutes:

4. If “At Home” is ON –> Allow heater to be turned on

Any glitch in the process would result in the heater turning off, rather than remaining on – a measure of safety.

The Results

As you can see in the graphs below, this implementation allowed a very fine control of my room’s temperature – it fluctuates between 69 and 70 degrees just as it should with a set point of 70.

HomeSeer Interface with relevant devices displayed.

HomeSeer Interface with relevant devices displayed.

From the small amount of sensors in place – even if the 2 motion sensors are ignored – a wealth of data can be collected.  The room temperature for the past 24 hours can be displayed as a graph, as well as a comparison of outside versus inside temperatures from the past week (outside temp retrieved from online).  The total time the heater has been on during a given day or week can be logged, giving an accurate estimate of the electricity costs involved in running it.  I can also disable the bottom device, “Electric Heater TStat” if I want to temporarily unlink the two devices.

Hopefully this provides an interesting example of what can be done with even the most basic of Home Automation setups.  I’ll try to delve into this topic further in a later post; there are some really cool implementations of automation I’ve come across, as well as other “problems” of my own that I’ve managed to solve in interesting – if a bit over the top – ways.