Piston for water re-circulation pump


I am trying to develop a piston that can do the following, but have not been successful.

I want to activate a re-circulation pump on and off for 15 minute intervals (on for 15, off for 15, on for 15, off for 15, etc) when at least one of two people is present. I want to piston to turn the pump off when no one is present and during the night (say 12AM - 7:30 AM).

I can get all by the 15 minute intervals just using Smart lighting in Smartthings.



If you’re happy to use smart lighting for part of the solution, you could turn on a virtual switch rather than the pump. Then have a simple piston which when the virtual switch turns on, executes a loop turning the pump on, wait 15 mins, turn pump off, wait 15 mins.


I would highly recommend keeping everything in Webcore, especially for the same automation.

I have a piston that controls ipad chargers. I don’t want ipads to get hot due to constant charging (They are wall mounted) so I turn them on and off every 30 minutes.

And in your purpose you can add what ever you want as a secondary condition…

Let me know if you need help with adding your conditions into this…


Haha, I need help with the conditions.


sure thing,

  1. so the trigger will be every 15 minutes. (15 ON - 15 OFF)
  2. only IF one of the presense sensors are active.
  3. and this whole thing will be happening only if it’s between 7.30am - 11.59pm
  4. and lets say 11:55pm the pump is working but since it’s 5 minutes to 12:00 you want pump to STOP regardless.

if all correct pls let me know, I can write something simple.
(Your post is very clear but I just wanted to make sure)


Exactly right


Not sure if the conditions are supposed to be up there or at each execution


If yours doesn’t work, try this


I tried your code, because when I tried the following it worked, but did not go off when no one was home.


In your code, if it started when someone is home, it would not go OFF when no one is home,
you can just add,

IF brian's and Margaret's precence is not present
Hot water pump
Do Turn OFF


I think Ike’s last post is solid, but I would insert that single command inside your “Presence” piston.
(since you will likely have many things that you want done when the house is emptied)


So, I changed it up a bit. Instead of just cycling the pump every 15 minutes, I decided to add a motion detector in each area that has water (starting with a few) and have those trigger the pump to run for five minutes. That works. Now the problem is that I cannot get the piston from firing on each motion detection. I want to get the pump to run for five minutes and then the piston to stop activating the pump for say 20 minutes. I tried to pause the piston and then resume it, but the piston just stayed paused. Any help is appreciated.


Are you using NEVER CANCEL TASK with WITH (Before Hot Water)?
I belive not because there should be a circled N next to WITH.

Q1 : How are you pausing the piston?
Q2 ; Are you trying to Resume the piston within the piston?
BEcause it says Resume Piston New Water and your current piston is named New Water


Great catch, Ike!

When a piston is paused, it is 100% useless. It cannot turn itself back on.
(I usually avoid pausing & resuming, but technically, a different piston may resume it)


I was trying to pause and resume within the piston. The resume statement is a remnant.


Never cancel task is now in the piston (took me a second to figure out how to add that).


Trying this…


I didn’t understand the part after line 31
What are you trying to accomplish there?
You are telling motion sensors to WAIT but they can’t do that:)

Plus your second IF block is within the first IF block…It should be a new IF block (depending on what you want to accomplish)


I am trying to get the piston to activate the pump when a motion is detected and then not activate the pump again for 20 minutes. The problem that I am encountering is that every time motion is detected, the wait five minute command is restarted.


So I tried to set up two pistons.

Piston #1 - Has the conditions and when motion is detected turns on the pump. Then, it resumes Piston #2 and pauses itself.

Piston #2 - waits 5 minutes, then turns off the pump, then waits 20 minutes, then resumes Piston #1 and pauses itself.

We shall see if that works at all