I have a gas millivolt (thermocouple pile) porch heater that has a manual control on it. I got tired of getting up and down to turn it on and turn it off, so I decided to make an Arduino project to take care of it.
The porch is somewhat drafty (in the winter I cover up the open screens with framed sheets of plexiglass) by design - I have a gas heater that I run on it, so I want combustion by-products to be able to vent. Plus, I like to smoke an occasional cigar out here!
My first thought was to put an Arduino thermocouple controller out here, but I thought, with it being drafty, I would try a timer-controller first, reasoning that it wouldn't be as susceptible to thermal air streams. So this describes my first take at this problem - an Arduino Adjustable Timer Controller that uses a relay's NO contact to switch the gas valve on/off.
Here's a link to more information, which includes a Fritzing layout, and software list, which you can copy/paste: Arduino Adjustable Timer Controller with Relay link.
Also, I did end up deciding that the timer control didn't work as well as I had hoped for controlling the heat on my porch, so I did end up changing the software and hardware and converted this to a temperature (thermocouple-based) controller. The only hardware changes were the addition of a thermocouple shield. I will be posting this update to another instructable soon.
Here's a link to the previous project - the Arduino Adjustable Timer Controller with Relay