Pasteurisation Timer for Hot Water

Hot water is heated with Heat Pump.
But to avoid Legionella, the practice is to periodically increase the hot water temp above 60c for at least an hour, every week or two…

Any advice on the best way to set up a long term countdown timer for, say, 10 days that will maintain through a restart/reboot?

I could schedule, but there’s a small complication - when the energy rate is negative (they pay us to use electricity - happens whenever it’s really windy here), the system is programmed to use the immersion rather than to use the heat pump, and thus does the pasteurisation cycle while it’s at this negative rate.

Anyone done anything like this.

Use an Input Datetime Helper and a template binary sensor. If you have access to the water temp, you could set up an automation to trigger off that being over 60 for an hour with an action to set the value of the Input Datetime.

The template for the binary sensor would be something like:

{{ now() - states('input_datetime.last_pasteurization') | as_datetime | as_local >= timedelta(days=10) }}

From there the next steps really depend on what your priorities are and what data you have access to. You could trigger immediately on the change of the binary sensor, or check energy prices to schedule a pasteurization cycle…

Got it - thanks - that’s great - I missed that helper…

Yup, I’ve got the temp of the water, so I’ll set it to change the date to 10 days forward whenever the temp is over 60c.

The Hot water heats using the cheapest 4 hours of electricity in any 24 hr period, selecting the Immersion whenever this is negative cost (of if the above timer has expired).

The heating also sets back during the most expensive 4 hours, saving a little energy at it’s most expensive.

Thats great - thank you.