Central heating control systems historically tend to be incredibly simple, responding to a single, often badly located thermostat, and a time of day timer, which is often out of kilter with the hours we actually need the heating to be effective.
Using low cost, open source hardware, can we improve on the levels of control and make significant savings to the amount of energy we use heating our homes?
About 6 months ago in January, when we were up to our knees in snow, I started thinking about how our simple central heating systems could be modified to make them more efficient and to use less gas.
We have all strived to reduce our electricity consumption - by turning off unnecessary equipment, but with gas heating, we could be wasting hundreds of kWh and not even realising it.
Before I dive into more sophisticated electronic controls - I will point out that improved insulation and draughtproofing will always offer the most cost effective reduction in domestic heating fuel usage.
The extent to which we heat our houses is entirely subjective depending on our personal level of comfort and the house occupancy, which is a function of lifestyle. For example, a modern well insulated home occupied by a professional couple might need to run the heating for two hours in the early morning and a few hours in the evening, whilst for someone working from home, or at home with a young family might need constant background heating.
The first thing to do is to measure the existing usage, in terms of time of day, internal temperatures needed for comfort and absolute gas consumption, and relate these to the average outside temperatures.
In order to make use of low cost open source hardware, I have chosen the Arduino to form the basis of my home heating monitoring system. As well as low cost, it is easy to interface to, relatively easy to program and benefits from the vast experience of a very large user base. With the use of a series of expansion shields, such as the ethernet shield and the Real Time Clock/sensor/SDcard shield, it becomes a useful cost effective tool for on line, real time datalogging. It can function as a standalone system - without the need of a PC or laptop in attendance.
So what parts of this project are already in place? The following list are those that have already been achieved by various enthusiasts (plus myself), or arisen from suggestions from others in the HomeCamp Community.
1. Measuring the temperature across several rooms.
The standard Arduino has 6 analogue input channels. These can be readily used to read low cost thermistor temperature sensors. A few lines of code running on the Arduino, linearises and scales the output of the thermistor to give a temperature reading in degrees centigrade. You can also use pipeclip thermistors to monitor the temperature of points on your hot water cylinder so you can decide whether it it hot enough to bath or shower.
2. Tracking the outside temperature - weather compensation.
By measuring the outside temperature - particularly in the very early hours of the morning, it is possible to predict how much heat is likely to be needed to bring the house up to a comfortable temperature when the occupants awaken. Older, less well insulated houses lose more heat to the environment. Knowing this rate of heat loss - which is proportional to the temperature difference between inside and outside allows you to better predict how much gas heating you will need. As comfort is very much a lifestyle choice, if you have alternative heating, such as a multifuel stove, you may choose to use this in preference to gas - at weekends for example, to offset the gas consumption.
3. Historical records of daily average outside temperatures.
A historical archive of daily average temperatures is available online for many towns across the UK. This record could be coded into the Arduino as a look up table, so that it could make a prediction to how much heating is likely to be needed on a particular day. Based on the early morning temperature, the historical average, and whether it is a weekend, your heating control system might choose a different strategy than if it were a milder weekday - for instance.
4. Measuring gas consumption on an Arduino and outputing it in CurrentCost XML format to display on Dale Lane's GUI (and others).
An earlier post to this blog showed how it was possible to read the gas consumption from a gas meter by using a non-contact optical sensing method. The pulse count data, relating to gas consumption can be converted into an XML message format similar to that output by the Current Cost electricity monitor, and passed out via a serial connection to be logged and graphed on a PC. As an example of a third party application for graphing and logging - I chose Dale Lane's GUI.
As an aside, Current Cost have sold 1.126 million energy monitors, and are introducing new products to give access to internet connectivity. The "10 channel" display capability of the Current Cost Envi could be used to monitor additional household data - such as solar water heating, pV or anything else.
5. Determining the heat-up, cool down curves for the particular property.
For a given average outside temperature, heat loss from a property will be at a certain rate. By determining this rate, it is possible to calculate the amount of heat needed to warm a property up from cold to the comfort temperature, and this can be converted to the required boiler on-time.
6. Wireless control of the boiler using a hacked wireless thermostat protocol.
Some years ago I deciphered the wireless protocol used by my Drayton Digistat wireless thermostat, and implemented this protocol on a low cost PIC microcontroller and wireless transmitter. By simulating the "boiler-on" and "boiler-off" codes, it is possible to override the existing wireless thermostat and control the heating directly with your own control system.
I now have a very simple sketch for the Arduino which implements this wireless boiler on/off control.
This leads to possibilities of remotely controlling the heating either from a web browser, telephone link (using DTMF tones) or something as simple as a TV remote control.
7. Individual control of radiators with wireless remote rad-valves etc.
Wireless motorised gearheads are available from Conrad Electronics (search for Radiator thermostats) for popular makes of thermostatic radiator valves (TRVs). These allow complete rooms to be individually temperature controlled, by monitoring the room temperature and setting the local TRV accordingly. It's possible to fool a TRV into shutting off its radiator by gently warming the wax "bulb". It takes a power resistor and about 1W of power to keep a TRV shut. This could be an alternative to a wireless system.
8. Uploading data to web with ethernet shield and datalog/display with Pachube.
Several low cost ethernet shields and gateways are now available which allow data to be sent up to the net for remote hosting, using free services such as Pachube. By using an external microcontroller that hosts the TCP/IP stack and has an integrated ethernet controller, the burden of this is taken from the Arduino. Data can then be communicated to/from the web as simple serial text.
9. Remote control/ access to heating system via web browser / iPhone app etc.
Once you have an ethernet connection to your central heating controller, remote access and monitoring is possible via web browser or custom app running on iPhone or Android etc. Not my immediate field of expertise - but many HomeCampers are working on similar apps.
10. Back-end datalogging, graphing and analysis (Ubuntu, Joggler, Processing etc).
A serial or wireless connection from the central heating controller to a laptop, PC or other graphical platform allows historical consumption to be logged and displayed. The O2 Joggler is a particularly economically priced platform capable of running Linux/Ubuntu. Again, whilst not my area, there are many hacking various platforms and re-purposing them for home automation applications.