Solar Water Heating & Space Heating Project

We moved to the Octopus Flux tariff on the 12th April 2023 and the import and export rates associated with this tariff mean that it is always financially beneficial to use gas to heat out water. We get paid more to export spare solar energy than gas costs per kWh.

The primary goal of this project is to enable smart, proportional control of solar energy into the immersion heater in my hot water tank. This design is also well suited to electric space heating though and I plan to test this as well. It is just one small part of my larger smart home solar project. This project will allow my contextual smart home to make intelligent, automated decisions as part of its smart energy management. I'm handing this over to my smart home as it has all the information and whole home context to make the best decisions in real-time.

It should save us lots of money, improve our Return On Investment (ROI) and to also improve our quality of life. With the right conditions, my smart home will decide to divert free power into our hot water tank and/or space heating. It can vary the amount of power diverted to the immersion heater or space heating between zero and 3000W, in 150W increments.

In order to intelligently control the immersion heater and space heating, my contextual smart home needs an accurate view of solar energy generation and energy consumption, i.e. the free power. This needs to have low latency in order for it to be responsive to changing weather conditions. A cloud API is simply not going to be responsive enough and will not work if the Internet connection or remote server is unavailable, so I have developed my own split-core current transformer interface PCB, to measure energy generation and consumption locally.

Note:  This is an experiment to see if pre-heating our hot water tank using electricity makes financial sense. It very much depends on your tariff. If I'm going to get paid more for exporting electricity than it would cost to heat our water using gas, then it will NOT make sense. On our current Octopus Go tariff we get just 4.1p for each kWh exported, so using it instead of gas (which costs 10.31p per kWh) makes sense. In the warmer months we aim to use an agile tariff to maximise our Return On Investment (ROI), so it may or may not make financial sense, depending on the time of day, etc. The advantage of this project is that my contextual smart home knows about the current tariffs and rates, so it can make the right decisions for me 😎

Background

There are commercial products that can divert spare solar energy to a hot water tank, such as the Marlec Solar iBoost+ (~£370) or the MyEnergi Eddi (~£450). Neither of these has the whole home context that my contextual smart home has though. This allows my smart home to make much more intelligent decisions on when to use solar energy to heat the water and how much energy to divert into our hot water tank and/or space heating. The solution built here is also considerably cheaper, costing £56 to build (for the power controller only).

Our current hot water tank already has a 3kW immersion heater. Before installing the controller, I measured the resistance of the immersion heater at 20.5Ω.

Note: I don't yet know how well this will work in winter but, during the summer months, the sun comes up at 4:30am and it should be possible to completely avoid using the boiler for water heating. Part of this project is to understand how well this approach works throughout the whole year though.

There is a tank thermostat installed in the tank that provides a 'Hot Water Demand' signal to the boiler for hot water heating. I've already developed my own ac voltage detection sensor, which is one of my smart home building blocks and is used to monitor this signal and be one of the inputs into the decision making process.

Because I also have three temperature sensors on my hot water tank, my smart home knows how much hot water is available in real-time. This is an example of a virtual sensor and means my Home Control System could only heat the tank to a set percentage (e.g. 50%) of its capacity if required. It is very easy for my smart energy management to dynamically prioritise based on this too.

My contextual smart home is making much more intelligent decisions than 3rd party products. It has whole home context and knows about the house status, so it automatically knows if we are in, out or away on holiday. It has real-time access to all of the 400+ sensors and devices in my smart home. It knows how hot the water tank is at any given time, when we will need hot water, the weather forecast, who is at home, etc. This stuff is important because it also knows that my wife has a bath and that I always have a shower in the morning. The primary goal of my contextual smart home is to enable intelligent assisted living but, energy efficiency is also important.

Design

My design is loosely based on this design and I worked with a friend to design and build a bespoke PCB that can be easily interfaced to an Arduino. My contextual smart home will use my unified communications protocol to request how much power is diverted into the tank.

The main PCB has:

Power control will be from 0% to 100%, in 5% increments. A clever zero-crossing algorithm reduces noise and improves reliability. Given a 3kW immersion heater element, this will allow anything from 150W to 3000W to be put into the hot water tank.

This is the layout of the components inside the case.

The design is enclosed in an ABS box that is 170mm × 120mm × 100mm deep. The enclosure has fan, ventilation and cable access holes. The fan speed is controlled by the on-board processor and it cycles air through the enclosure regularly, to ensure the internal temperature sensor gets and accurate view of the internal temperature. The fan is very quiet in operation.

Inside the enclosure are the controller, connectors and the cooling system. There are entry points for the power supply, immersion heater and a 4-pin connector for the I2C control.

Installation & Safety

This unit uses the original wiring put in place for our immersion heater. It has its own circuit breaker in the garage consumer unit and an on/off switch in the airing cupboard. I've simply installed it between the immersion heater and the switch, using a 30cm long piece of high current wiring to match that previously installed. The existing switch can still be used to cut power to the unit and immersion heater.

Interface

The controller PCB has a 4-way Molex connector which exposes the I2C interface using following pins:

  1. N/C
  2. SCL
  3. SDA
  4. GND

The SCL and SDA lines require 4K7Ω pull-up resistors.

I'm using a 4m cable between the Arduino in my loft (above my airing cupboard) and this controller, for the I2C comms and testing shows it to be reliable. It's using the default speed of 100,000Hz.

Smart Home Integration

My contextual smart home models the 'Immersion Heater' as an object of object type appliance with variable power capability. It also models the 'Immersion Controller Temperature' as a temperature sensor. These are interfaced to my smart home using an Arduino above my airing cupboard, which uses my unified communications protocol to communicate with my Home Control System.

The 'Hot Water Tank' is a virtual sensor and models the percentage of hot water available in the tank. It is calculated by measuring the temperature at three points on the tank and my testing has proven it to be remarkably accurate.

The actual control is performed by my smart energy management process, which is also part of my Home Control System. The key thing is that it has whole home context, so it is aware of everything else going on in our home.

My smart energy management process changes the priorities of things like the immersion heater dynamically, based on the time of day. When it is active, the algorithm used looks something like this:

  1. If the house status is 'Away', then the Immersion Heater is 'Off'.
  2. If the 'Immersion Controller Temperature is above 50°C, then the Immersion Heater is 'Off'.
  3. If any of the three hot water tank temperature sensor are above a set limit, then the Immersion Heater is 'Off'.
  4. If the 'Hot Water Demand' is not 'On', then the Immersion Heater is 'Off'.
  5. If the 'Hot Water Tank' is above a set (dynamic) threshold percentage, then the Immersion Heater is 'Off'. This percentage is set based on time of day and who is at home.
  6. If there is free power available then the Immersion Heater is 'On' and the power is set to a percentage value that matches a slightly lower power, to allow some headroom for small changes due to weather.

In Use

My smart home solar installation project was completed in October 2022 and whilst we still generate a reasonable amount of energy during winter, useful energy generation does not start until after 8am. This is too late to be of any use on a week day, as my wife has already left for work before this. There is scope to heat water for use in the evening though.

The other way to save money whilst we are on the Octopus Go tariff, is to use cheap electricity (7.5p/kWh) between 03:00 and 04:30 to heat the hot water tank, before gas is used a few hours later. Gas is costing 10.31p/kWh and is a less efficient way to heat the tank, so this would result in a cost saving.

November 2022

The controller is now complete and in testing. Sending a notification is one of the common capabilities of my contextual smart home and it can easily be enabled by simply setting a flag for the Immersion Heater object. This means I get a notification every time the immersion heater is switched on and off, which makes it very easy to see what's going on.

My contextual smart home also captures detailled logs, so I can see exactly what power is being sent to the immersion heater and when.

The highest temperature recorded inside the immersion controller by my @smartest_home so far is 42°C. This is pretty good, given that the airing cupboard temperature reaches 34°C.

Summary

To get the best Return On Investment (ROI) on any solar installation, you need to make the best use of any spare solar energy generated. Pre-heating hot water in the winter and fully heating it in the summer is one of the most effective ways of doing this. Doing it smartly, with whole home context makes the process even more efficient and effective.

Whilst the focus of this project is hot water pre-heating and heating, the hot water tank in our airing cupboard is also part of our gas-powered central heating system. Any energy put into the hot water tank could also be used to heat our home.

I'm measuring the impact of my solar energy related projects like this on my energy usage and measuring the results on my 2022 energy analysis page.

Buy Me A Coffee

If you found this page useful you can buy me a coffee. This helps me maintain this website and add more content.