Cancel Wait For Condition

Ok I am have been scouring around topics, but can't find the exact answer to my question.

I am writing a rule which deals with pausing my climate automations if I push a virtual switch. There is lots of stuff that deals with how the climate automation was paused in terms of button push or manual temperature override, as well as waits and timeouts. I mainly have it working, except I can't seem to figure out how to cancel a wait for condition. At first I thought I could set an exit rule before the else, but I learned from another topic Exit Rule does not stop a wait.

If the actions of my first statement are all executed, I want to cancel the wait for conditions in my else statement.

Might be a little easier if you posted a screenshot or even just wrote out some text to outline the rule a little more clearly, i.e. something more closely representing the structure of the rule. But hey, I'll still have a crack at what I think you may need....

There is probably a more elegant way of doing what you need (than what I am describing), but for my example, when the mode changes to Day, I leave a 1 hour delay on turning off my bedside smart plug, about halfway down the first screenshot below, importantly setup with the Cancellable option. In the second rule / screenshot, when the mode changes to Night, in case that has changed shortly after the mode changed to Day for any reason, I cancel the delayed action from the first rule, again about halfway down the second screenshot.

You could setup a second rule to the one you have described that is triggered by your button or any other trigger that you want to have cancel the actions, and include in that second rule a similar call from my second screenshot to cancel the actions in your existing rule.... If that makes sense....

Thank you for taking the time to reply. so actually, my rule does what you describe in terms of canceling a wait.


Scenario A- I push the button, the timer runs till my hold expires

Scenario B- I release the button on my own and cancel the timer.

Because turning off the switch also changes the variable to "auto" it fires off the else statement anyways. Nothing actually happens, its just not as clean as I would like it, and it might cause problems when I work on scenario C, which is manual temp set.

This doesn't really deal with cancelling the wait, but you may also want to look at using the new predicate function to stop the rule firing when you disable the automations.

This thread might help Wait for (the lack of) event - RM5??

What event is it that you want to cancel the wait? Cancel Rule Timers will cancel waits, so another rule could do it, fired by that event or from the conditions... i.e., another rule can kick your rule in the butt....

As for waiting for lack of an event, Wait for Conditions can have a duration or a timeout. Duration means the conditions have become true and stayed true for specified time, and timeout just blows out of it after a certain amount of time has passed, true or not.

Ok got it.

One rule can stop delayed actions and timers in another rule if fired.

I see some variable conditions for timeout. So, could a timeout be triggered based on a string change?

Download the Hubitat app