RM 5.0 Cancel Self

I am trying to migrate some of my rules from RM 4.0 to 5.0. I am working on one that if the door is closed, it locks the door after a cancelable delay. Otherwise, if the door is open, it cancels the prior rule. (so, if you open the door after closing it, the rule stops). I could find the cancel Timed Actions ** this rule** until I updated to 138, however now it only seems I can cancel other rules but not the current one? Is anyone else seeing this, or has it moved somewhere and I can't find it?

I went with Auto Lock for that and haven't looked back, so much easier. This is the top of the app, I will try to find a link for it. I installed it via habitat package manager. Link below.

Auto Lock

So that actually looks amazing, going to go install it and check it out (HPM is so amazing...)

I do have several rules that canceled themselves though, not just locks, so I'd still like to know where this went in the last few days

I'm still able to find the "Cancel Rule Timers" action (it has also been called "Cancel timed actions" in the past):

However, I only see other rules in the dropdown, not "This Rule" (or the current rule by name). I don't remember reading about that as an intentional change, so I'll tag @bravenel to see if this was an accident with the move to "new" Rule Machine.

That being said, you don't need this to cancel a delay within the same rule. Can I suggest sharing a screenshot of your current rule so someone could suggest an alternative? Traditionally, a "cancelable" delay plus a "Cancel Delayed Actions" action was recommended for this purpose. Lately, "Waits" have become more prominent and are automatically cancelled with a retrigger, including "Wait for event: elapsed time," so one of those would probably do what you're really looking for, and then you also don't have to worry about the baggage that "Cancel Rule Timers" may take with it in some cases.

For my locks I currently have two rules:
The first that will just lock if the lock is unlocked but nothing changed:

The second handles the door opening and closing.

I had one this morning that set a variable back to false in another rule that was "Broken" this morning, had to tell it what rule it was for again then it repopulated the line.

Yeah, the problem is I can't seem to find the "self" option. Brand new rules, editing current rules, no variables, it just doesn't seem to let me have a rule cancel it's own delays anymore

I just did a test rule and you all are right. It is no longer there. Surely it was unintentional.

Yeah, it's weird that this option isn't showing up. I've tagged Bruce above, so hopefully he will comment.

In the meantime, to cancel that delay within the same rule, you don't really need it. Modifying the rule actions to either of these would achieve the desired effect:

Cancel Delayed Actions
Lock: Basement Door Lock --> delayed 0:05:00 (cancelable)

or:

Wait for event: elapsed time --> 0:05:00
Lock: Basement Door Lock

I'd generally recommend "Cancel Delayed Actions" over "Cancel Rule Timers" anyway, given that the latter has a much broader scope and could impact more than just delays (which you don't have in this particular rule so isn't of consequence, but could matter in others). And with a "Wait," you don't need explicit cancellation at all because they all get cancelled on re-trigger (and that has generally become my preferred method of doing this on rules where I want this outcome).

2 Likes