Seasonal control of heat pump hot water

When do you heat hot water with a heat pump? Sounds so simple and it can be – just set a schedule that works for you in the heat pump controller. Perhaps overnight to take advantage of cheap electricity, maybe late afternoon to make sure there’s plenty of hot water for the evening.

We started out by heating the water overnight using cheap Octopus Go electricity – works fine – the heat pump is usually not heating overnight anyway so the hot water didn’t affect the heating. Usually only need about 2 kWh of electricity to bring the tank up to 50C – costing around 20p a day.

It’s not perfect though – in summer and some shoulder season days there’s usually plenty of solar power available – so no need to use grid energy at all. It’s also warmer during the day than at night so the heat pump doesn’t need to work quite so hard to bring the water up to temperature. Of course heating hot water during the day is a bad idea if it means using peak electricity at 40p per unit. So how to make it all happen automatically? Enter Home Assistant (HA).

The idea is to heat hot water at night unless there’s plenty of solar around and it’s warm enough so that using the heat pump for space heating is unlikely. It uses two HA automations. The night automation is straightforward – here’s a screenshot.

At 00:45 – in the cheap rate interval – the automation checks to see if the hot water tank temperature is less than 45C, if so it fires up the heat pump to heat the water. HA can read and control our Mitsubishi heat pump via the MELCloud integration. By checking the water temp is below 45C the water isn’t heated unnecessarily. The second condition is to do with Legionella control – return to that later. Now here’s the day automation.

At 1pm the automation checks that it’s warm enough that heat pump heating is unlikely to be required – for us that’s at about 15C. It then checks that there’s plenty of charge in the Powerwall – usually means there’s plenty of solar around. The last check is that the water temp is below 49C – using 49C means the day heating will trigger even if the night has triggered earlier that day – however if the day has triggered the night heating probably won’t trigger as the tank temperature won’t have dropped below 45C – want to use day heating if at all possible as it’s free!

So what’s the end result? The hot water heating takes place overnight in the winter but when it’s warm enough and there’s plenty of solar the water heating happens for free using electricity from solar/battery. It probably only saves £20-25 a year but that’s 30% of our annual hot water heating bill. Once set up it’s all automatic so no further thought required.

And finally – that second condition in the night heating automation – we use a third automation to heat the water to 60C using the immersion heater for legionella control. The trigger is the heat pump turning back from ‘force hot water’ mode to idle – so we aren’t using the immersion more than we need to. HA counts the days since the water was last above 60C and if it’s been more than 10 days turns on the immersion if there’s plenty of power in the battery or if it is cheap rate time. That 12 days check just makes sure it never goes more than 12 days without triggering the legionella control.

We’ve come a long way since clock work timers controlling the central heating!

Leave a Reply

Your email address will not be published. Required fields are marked *