Anyone written a custom app for hot water recirculation? Figured I would check before I wrote one up. I do see that @storageanarchy wrote one way back when for ST, but I don't see anyone having ported it over. @storageanarchy did you ever bring your app over into Hubitat - if not, mind if I port it over and use it as a starting point?
I scoured the community on this a few months back and came up empty. I did end up creating fairly robust logic to handle a decent variety of use-cases. Happy to share if you end up trying to develop a real app (I executed the design via RM which is probably suboptimal).
I had a fairly complicated webCoRE piston for a while, but I greatly simplified it. This is my logic I've used for a while now...
Turn on with motion, but only if it hasn't run in the last 30 minutes (no need to run with every motion). Turn it off if it has been on for 5 minutes (plenty of time to get the hot water). I have it run a couple times in a row right around the time my wife's alarm goes off, too.
Sure, that'd be helpful. I am indeed moving forward with app development.
@Equis makes a good point.
I could imagine an app that allows the user to set different kinds of recirc rules. Here are the basic kinds we use via RM, but I've abstracted them in the descriptions below so they are more generalizable:
-
When somebody gets out of bed (requires bed occupancy sensors or similar) after having been in bed for a minimum period of time. You could simplify this to "first thing in the morning", but our sleep schedules change and my wife likes to shower after afternoon naps, so this logic works better for us.
-
When it's bitter cold outside to prevent pipes from freezing (Midwesterner here!)
-
When you have guests (or if you have dependents that live with you, I guess) staying in the other bedrooms (bed occupancy and/or room occupancy via motion and/or presence) and they get up in the morning
-
When you turn on or start the dishwasher
-
When you use the hot water dispenser in the kitchen
-
On demand via Alexa/Google, a button, or by using the shower light/door as a proxy
-
As a catch-all, just turn on/off recirc pump based on time-of-day and/or mode.
Related to some of the above, for those of us that use Flume or similar to detect water flow, that could be related condition.
CAVEAT: there is clearly a latency issue here, which I have not tested....how long does it take a recirc pump to get hot water distributed throughout your home. Certainly YMMV. But, depending on the answer, if latency is high enough, some (like #4) may not make sense.
Last comment, I know some people (though perhaps not many) have also automated their water heater. We do. The automations for the recirc pump can be coordinated with your water heater, which creates a whole other layer of logic, which I've left off the above.
Hope this helps Justin. You've certainly given a lot to this community, so anyway I can give back, I'm game.
Development coming along. I have a question for feedback though. Here's one scenario:
You have specified these rules:
(1) when the light above the shower in bathroom A turns on, turn the recirculator on
(2) when the ligiht above the shower in bathroom B turns on, turn the recirculator on
(3) the maximum duration for which the recirculator should be on is 20 minutes
If the light above the shower in bathroom A turns on at 12:00, and the light above the shower in bathroom B turns on at 12:10, when should the recirculator on period time out? 12:20 or 12:30?
In other words, should the light turning on above the shower in bathroom B extend the duration of the on period, or not? My gut tells me that it should, but I'm not sure. Thoughts?
Maybe @ritchierich can provide input on this question as well. I think your code would not extend the on period, as it seems your code would schedule the recirculator to turn off after timeOnThreshold when switch 1 turns on, and that schedule remains in place even after switch 2 turns on?
EDIT:
It might depend on the particular recirculation system actually, now that i think about it. In my case, I can turn on the recirculator setting, but the system itself will avoid unnecessarily running the recirculator pump if it's already at the temp setpoint. If on the other hand someone needs/wants to directly control the pump, then maybe they woudn't want to turn it 'on' in this csae. So maybe it needs to be configurable. Hmm.
In my own version I keep the pump on for 60 minutes and don't extend it. It is based on the time it initially turns on which is either by turning on the virtual switch via Siri/Alexa/Dashboard or from one of 4 shower lights. Now when a shower light turns off, I am checking to see if another one of the 3 is still on and if so I leave the pump on until all are off.
I never got to the point of looking at the temp setpoint because I have cases where I want the water to be hot for 60 minutes for things like dishwasher and washing machine.
Right, ok, so would that in fact extend the on period past 60 minutes then? Like, if the first light turns on, the 60 minutes is started, but if a second light turns on in the meantime and stays on past the 60 minute mark, the pump would stay on?
I'm using a Leridian Dynamics controller today, and replicating that logic into RM, so would love to see if you could work some of this "on-demand" logic into your app.. - The basic sensors are a hot water supply, hot water return, and hot wate flow meter - It basically looks at deltaT across the supply and return, and if there is any flow (or given any specific "active times") it turns the recirc pump on/off based on deltaT high/low limits.
See: What Is Smart Recirculation Control? - On Demand Hot Water Controller
So basically, two temp sensors, one flow meter, and an on/off pump output. - And they any additional logic to manually trigger the pump beyond the deltaT limits.
Let me know if you interesting in hearing about my work thusfar in RM, but I think this is actually a better use case for an app (and I may end up forking whatever you end up doing)
Hope the above is useful for your consideration - gfa
Good question but no the pump turns off regardless after 60 minutes of being on but will turn off earlier after the last shower light turns off.
what types of hubitat devices are these? regular switches or something else?
My variation on this. Recirc on for ten minutes with motion, bathroom or kitchen. Off for 30 minutes and then available for on again with motion.
Probably a whole conversation on how to track appliance state (on/off). Depending on the specific type of appliance, I think people tend to use smart plugs/receptacles that track power, vibration sensors (esp. for washers, dryers, or dishwashers), or even time-based variables.
I use IotaWatt, which is an open WiFi-based power monitoring solution using this awesome driver written by @ogiewon.
If the device in question isn’t on a dedicated circuit, then I’ll just use a smart-plug typically.
Regardless of the specifics, I think a “power meter”, “switch” or “vibration” capability would address most the use-cases to start.
So, this would be something like turn on the recirculator when power goes above a threshold and off when power drops below a threshold?
It sounds like your system doesn’t itself control the actual recirculation pump based on temp? My system internally decides whether to actually run the recirculation based on the temp in the recirc line, so my setup will be to just turn on/off the recirc setting - if i turn the recirc setting on, then my system will turn the pump on/off as needed to maintain the temp set point. But with yours, you would need to actually turn on/off based on temp set point?
Something like:
Detect that recirculation is needed when detect motion in bathroom or detect water flow. While recirculation is needed, turn on/off the pump as needed to maintain temp between high/low temp setpoints?
Actually, this is a good point. I think (?) most people use separate automations or rules to determine if the power meter is showing appliance on or off. There are typical patterns like "if power meter remains above X watts for Y minutes, then appliance is ON" or "Once power meter is below X watts for Y minutes for a second time, then appliance is OFF". With dishwashers and washing machines, for example, there are multiple cycles that can create false on/off indicators if you're not careful with the logic.
So, this makes me think the recirc app would be fine to just support a Switch since all the power meter stuff would live in different automations. But that's just my thinking. Perhaps others could weigh in here. Imagine there are lots of different patterns.