Expected Behavior for Wait for Conditions?

All-

I have a rule that turns on the side yard light 45 minutes before sunset and sunrise when the side door is opened. Once the door closes (the wait for condition), the light turns off after 30 minutes. Here is my rule:

I thought the rule has been performing flawlessly (or so I thought) until the last few days. For the past few days I noticed my side yard light switch never turned off during the day. This morning I opened the door before sunrise and closed it. Under the Scheduled Jobs section under the rule, it had the pended Off time, which was 30 minutes later.

Here is what I think is happening. After some testing today, when the Scheduled Job is populated with the Off time, if I open and close the door after sunrise, the rule is canceling the Scheduled Job entry and the rule never turns off the light.

@bravenel, is this expected behavior? If so, do I need to go back to the old way and do and If/then in the rule?

Thanks,
Scott

Yep, a wait is canceled whenever a rule is triggered.

Well that explains it then. Back to the drawing board....

This should should do part of what you need. Note: I got the private boolean back to front as noted later in the thread.

Hopefully this isn't too much of a hijack, but I've never gotten my head wrapped around how private booleans work...

I'm sure this is a dumb question, but in your example here, why does it matter whether or not you start with the boolean being true vs false (or vice versa)...

IOW, as long as you get the order & flow correct for what-changes-when within the rule, why does it matter if you start as False vs True (or vice versa)?

TIA for any attempt to help set me straight!

The private boolean starts in a true state for a new rule, so for this particular rule having a precondition of it being false would prevent the rule from setting the boolean to anything else.

2 Likes

Ah ha, I knew it was something easy like that - makes sense - thank you! I was confusing a no-kidding Private Boolean with a boolean hub variable. Thanks aagin.