During spring and autumn one can spend less energy for heating your home by keeping the furnace temperature lower.  

Reason for this project:

Especially during spring and autumn, the max. furnace temperature should be around 20 deg. C at an outside temp of 20 deg. C. At -20 deg. C the furnace should be somewhere between 80 and 95 deg. C, depending on your requirements. By using DS18B20 temperature sensors for both outside temperature sensor and furnace temperature sensor, an Arduino can take care of the rest. The outside sensor should be North facing, out of direct sunlight.

Methode of operation:

When the room thermostat asks for heat, the Arduino will pass the request to your furnace as long as the temperature is below the calculated ideal temperature. Soon as the furnace reaches the calculated ideal temperature, it will interrupt the furnace request. When the furnace temperature has dropped to ideal temperature minus the hysterese, the request will be passed on again.

Since the Arduino has multiple analog inputs, three of these are used for set the max furnace temperature (80 - 95 deg. C), the hysterese (5 - 25 deg. C) and a factor ( 0.8 - 1.2) to adjust the calculated max. ideal temperature. Analog input 1, 2 and 3 are used as seed to calculate the above settings.

LEDs show LOW: temp below ideal - hysterese, MED: between ideal - hysterese and ideal temp and HIGH: above ideal temp. A forth LED shows if the request is passed on. The pcb is tested on an Arduino Duemillanuove and an Arduino Ethernet.

When you get -127°C temperatures at first, don't panic, run DS18B20.ino first to get your sensors addresses and change these adresses on line 37 and 38 in WAR_8C.ino to the ones you just discovered. I used the sensors with a waterproof 1 meter cable attached to it. In DS18B20.ino it shows also where to obtain the Dallas_Temperature_Control_Library, which is used together with the OneWire library.