Motion activated hot water recirculation

This is a simple project that I installed last week and has been working well so figured I’d share.

TLDR: Installed a hot water recirculation pump plugged into a smart switch and turn it on based on a motion sensor in my bathroom to get instant hot water at the sink.

Longer version:
I have a bathroom in my house that isn’t super far from the water heater, but it takes about a minute after turning on the sink to get hot water. Started looking into recirculation pumps. For anyone that doesn’t know, hot water recirculation pumps basically work by pumping water from your water heater through your water lines to keep a ready supply of hot water in the lines (and thus prevent having to dump water down the drain while waiting for it to heat up). There are two main types of installs:

  1. dedicated lines, where you have a dedicated line from your hot water line back to the water heater that allows the circulation
  2. no dedicated line - the cold water line serves as the route for recirculation. You connect the hot and cold water lines with a thermostatic valve at the farthest fixture - the valve allows the water from the hot line to go into the cold line as long as the water is below ~100 degree F, then it closes when it warms up.

I used #2 since I didn’t want to plumb a new line. I used this pump + valve, but there are lots of similar options. Install was super easy, only needed a wrench - took about 20 minutes between screwing in the valve under the kitchen sink and screwing on the pump on top of the water heater. Luckily I have an outlet right next to my water heater, so plugging in the pump was also easy but that could be a problem for people without an outlet available.

Normally the pump is meant to continuously cycle water based on a time schedule (e.g it’s off when you sleep). That seemed wasteful, so instead I turn it on based on a motion sensor in the bathroom I want hot water for. I was worried that the pump wouldn’t be fast enough to prime the line in the normal time it takes to use the toilet, but it seems to work. I now get hot water in about 5 seconds (down from 60).

Here is the automation I use to turn the pump on/off. It triggers on motion, and turns the pump on for 2 minutes, then turns it off again. I added a history_stats sensor to record the amount of time the pump has been on in the last 30 minutes and added a condition to prevent it from turning on again after it has been on for > 7 minutes in the last 30. That part probably isn’t necessary since the thermostatic valve should prevent water from recirculating after the lines are hot anyway, but figured it wouldn’t hurt.

alias: Hot water recirculation
description: ""
trigger:
  - type: motion
    platform: device
    device_id: b31f2c377aa3d574976603d51dd17335
    entity_id: binary_sensor.0x5c0272fffea2a053_occupancy
    domain: binary_sensor
condition:
  - condition: template
    value_template: >-
      {{float(states('sensor.hot_water_recirculation_pump_on_last_30_minutes'))
      < 0.11}}
action:
  - type: turn_on
    device_id: 53f3696cb731b5990966e6cfe6a59428
    entity_id: switch.0x00124b0023b83fd6
    domain: switch
  - delay:
      hours: 0
      minutes: 2
      seconds: 0
      milliseconds: 0
  - type: turn_off
    device_id: 53f3696cb731b5990966e6cfe6a59428
    entity_id: switch.0x00124b0023b83fd6
    domain: switch
mode: single
3 Likes

Thanks for the inspiration. Now I’ve got a new project to do! :laughing:

After doing a bit of research on that pump I do have a question tho…

how does it affect the cold water system at the faucet where the temperature sensor valve is located?

I know it has to put some warm water back into the cold water line so how long does it take you generally to flush the warm water out of the cold line until you start getting cold water again?

Good question - forgot to mention that. The cold tap is definitely warm at first (not hot, but noticeably warmer than normal). I would say it takes about 10s to get back to fully cold water.

I like this! This is going in my already long todo list too. :slight_smile:

Thanks for the reply. I didn’t see it at first. Not a complaint at all but just to help you out in the future if you don’t either tag someone in your reply (with @) or hit the reply button in their post the person you are replying to doesn’t get notified of your reply.

But that’s good to know.

One other question…

If the pump isn’t running when you call for hot water by turning on a hot faucet does it cause the hot water pressure to be reduced?

Hopefully that wouldn’t be an issue if the automation to turn the pump on works correctly but if it doesn’t I was just wondering what sort of impact it would have and how much restriction the non-running pump causes.

Ah thanks missed that there is a per post reply option - that’s helpful

Re water pressure when the pump is off: just tested and didn’t see any change in water pressure with it on vs off. My understanding is that a circulating pump shouldn’t reduce pressure, but not sure. That being said I have pretty strong water pressure and it’s a low flow fixture so not sure if I would notice a small drop.

1 Like

Thanks again for the additional info.

My wife seems on board so it looks like this is a go. :grinning_face_with_smiling_eyes:

I’ve been planning on adding this setup to my home. I’m lucky that I can add a dedicated line in my unfinished basement. I’ve read that it’s the preferred way to go. The pump just routes the hot water through the loop and back into the supply line for the hot water tank.

I’d like to add one more twist to this setup. When my dishwasher runs, I’d like to keep the pump running for the duration of the cycle (~2.5hrs) so that I’m not rinsing with cold water. My plan is to plug the dishwasher into a smart plug that monitors current. I’d have the pump turn on whenever the draw is greater than whatever the idle amperage of the dishwasher is.

I’m really new to HA, in fact I haven’t even started writing YAML yet. I know I’ll need to at some point, but my simple automations yet haven’t required it.

I’ll have motion sensors in both the kitchen and bathroom that energize the pump for a 5 minute cycle whenever motion is detected

Is there a way to prioritize an automation? Here’s an example…

  1. Dishwasher starts cycle.
  2. Pump turns on.
  3. Motion sensor in bathroom senses motion and tries to turn on pump (already on, so no problem)
  4. 5 minutes later, the automation for the bathroom sensor times out and tries to turn off the pump.

I’d like to ensure that the pump runs as long as the dishwasher does.

I could set up a check every two or three minutes to ensure that the pump is running while the dishwasher is drawing power but that seems inelegant.

I’m open to any and all suggestions.

Thanks, PC

add a condition:

“5 minutes later, the automation for the bathroom sensor times out and tries to turn off the pump - but only if the dishwasher isn’t running.”

Simple and elegant. Thank you.

I’ve got a long way to go before I’ve got this thing “mastered” in any meaningful way.

1 Like

Very nice – going to clone this and adapt it. The California Title 24 energy code requires that the pump can’t run for more than 15 mins in an hour so I love your sensor+history_stats idea. Can you share that sensor configuration?

Is it possible to get the yaml configuration code for the sensor.