I found it a waste of money and energy to heat up water and not use it. After hooking up a ESP8166 with a sensor and sending the readings to Thingspeak, it was clear that savings could be made by taking the control of the hot water off the time clock and controlling it manually via a webpage.
This Instructable will show you how to build a hot water thermostat, that defaults to a low setting and can be set to a high setting using a Browser. After reaching the higher setpoint, it will go back to the low setpoint. The reason I came up with this idea, is that I was wasting a lot of energy heating up water to 60 Degrees C and then not making use of it. Now I keep it at a low temperature all day long, till I need really hot water for a bath or washing dishes etc.. Legionella is not a problem, because the water is heated to a hot setting at least once a day. See http://www.hse.gov.uk/legionnaires/what-is.htm for more information.
Step 2: The Hardware Needed
The main piece of hardware you will need is an Olimex ESP8266-EVB. I bought mine through Amazon. You could also use an Olimex ESP8266-EVB-BAT, that has the option of connecting up a LiPo battery. When I loose my mains power, I cannot heat anyway. So unless you want to heat to the higher setpoint as soon as the power returns, there is no need for a backup battery.
The Olimex ESP8266-EVB is a nice little bit of hardware built around the ESP8266 chip. Please note, the ESP8266 is a 3.3 Volt chip, so be careful not to get 5V onto any 3.3 V parts of the PCB. The built in relay requires 5 V. There is also no 5 V regulator on the board, therefore your power supply needs to be regulated to 5 V. There is a 3.3 V regulator on the board.
If you intend to control high Voltage, be aware of the dangers when handling high Voltage and leave that part to a competent person. Also keep all high and low Voltage wiring completely separate. Make sure High Voltage parts cannot be accidentally touched and mark those parts as being high Voltage.
Step 3: The Web Interface
It is fairly simple. To activate the higher setpoint, just click on the "Turn on HW". A second or two later click on "Refresh Readings" and it should the tell you that the current setpoint is your higher setpoint. The status will also tell you that it is heating up.
Step 4: It Works Well
Since installing the new system, my gas bill has gone down by a huge amount. The 10 quid I paid for the hardware was well worth it. I recovered that money after the first month.
My thanks to all the people who provided the code that I have adapted and Olimex for the useful hardware.