X10 offers a solution to this problem in the form of a device called a thermostat setback controller. The device is designed to be mounted beneath a standard thermostat. When activated, it heats up, fooling the thermostat into thinking that the room is hotter than it really is. Theoretically, you could set your thermostat very high and then activate the setback controller when you wanted to turn the heat off.
To me, this seemed like a really clunky, inelegant solution to a simple problem. Instead of using a setback controller, I decided to find a way to electronically bypass the thermostat using X10.
WARNING: Before embarking on a project like this, think about whether you really want your furnace connected to your home automation system. While this method allows the thermostat to function normally when X10 control is not activated, the furnace will run continually when X10 is active, which means it could easily become dangerously hot if the X10 control was mistakenly triggered.
Also, all furnaces are different, so these methods could fail miserably, void your warranty, damage your furnace, violate electrical codes, or hurt you. You undertake this project at your own risk. If you do decide to automate your furnace, you must write some kind of routine in Powerhome that prevents the furnace from running for too long, either relying on timing or environmental data to limit furnace runtime.
Finding the Parts
If the thermostat wires connect to screws on the furnace, grab a short piece of wire and touch it to both screws. Wait about 3 minutes. The furnace should turn on. If there are wires coming from the furnace rather than screws, touch the wires together and wait. Again, the furnace should turn on. If there are multiple wires, try different combinations until you find two that when held together for about 3 minutes activate the furnace.
Bypassing the Thermostat
Now all you have to do is create a furnace macro in Powerhome. You should also write a timed macro that prevents the furnace from running for too long. Personally, I have a timed macro that runs every hour. It loads data from my weather station (seeWeather/Environment Sensing) and turns off the furnace if the indoor temp gets too hot. My macro for turning the furnace on also checks indoor temperature before sending the X10 command–this prevents the furnace from coming on by mistake if the house is actually warm.