As usual a lot of work is done because there is an itch to scratch. The reason for this heater controller project is simple. My house has a underfloor water heating system, where water is warmed up by direct flow electric heater from www.starlevel.ee. A fireplace is also used for heating.
Electric water heater has a built-in thermostat, but its delta, or the temperature difference used to turn heating on or off, is very wide. About 10 degrees Celsius. Also using only this thermostat, there is no way to take account of indoor or outdoor temperature. In reality, when I had no external sensors, the system was a lot like a manual system. If it is cold inside, turn the thermostat up, if it is too warm, turn it down. After a couple of days it gets boring. One good thing – this built in thermostat limits maximum water temperature i.e. a fail-safe feature.
Adding am external room thermostat made the system a little better. Select the room temperature and it tries to hold it. At least in theory. Reality was different. Latency plays a big role here. Set room temperature at 21 C. As this thermostat has a delta of 2 degrees Celsius, it turns on at 20 and off at 22. Good enough, if everything works in a blink of an eye. Real situation looks like this: room temperature drops to 19.9 C, heater turns on. But heating takes time, so room temperature drops still. To about 18 degrees. Heater works for hours, slowly concrete floor starts to heat up. In half a day room temperature reaches 22 degrees C and heater turns off. But floor is way hotter, so room temperature raises still. To about 24 degrees. Then everything starts to cool down again. What this description tries to say, is that one must control more than one variable or have more than one sensor to have a satisfactory heating system.
To add some salt to injury, electricity has two tariffs in here – day tariff is about twice as expensive as night tariff. So this system should also be aware of time. Also a secondary heat source – a fireplace is used whenever possible, as burning wood is still the most economical way to generate heat. And then there is the sun. It really warms. Room temperature might get way over set temperature sometimes. Still floor should be warm to step on, not cold.
Looking at big or not so big commercial controllers and getting some quotations for them, it seemed too complicated, and too expensive.Also, to add some anecdotal evidence – usually there are always some problems with heating. It is either too cold or too hot. Speaking with other homeowners, there are always something to complain about heating. It gets even worse if a ventilation system is present. It is not uncommon to see heating working at its maximum capacity and ventilation trying to keep room temperature at tolerable levels.
So I got an Arduino board and some sensors instead.