So much capability in RM 3.0, itās easy to overthink things and make your rules contradict themselves. Did it to myself this morning.
We need an inference engine to watch what weāre doing and tell us it doesnāt make sense before we make those mistakes. We could call it B.R.U.C.E (Bring Rules Under Control Engine)
No, not for every action. That doesn't make sense either. But one of the things that I am struggling with now that I have a lot more rules is that when I want to change something, I have to go into 20 rules to change it. That's really tough to manage. But if we were able to keep things within the same rule, then you only have one to go into. My example with the light for example, if the contact sensor for the front door changed, that would be 3 rules I have to go into to update rather than one. If it accomplishes the same thing and doesn't cause a lockup, I don't see the harm in doing it differently. After all, options are good, right?
Another thing that would help with the number of places to make a change would be Time Variables. For example, if i had a time variable set to Sunrise plus 20 minutes and then could write rules using that variable, if at some point I decided I wanted to change that to sunrise plus 30 minutes, I would only have to do it once vs in a dozen or so rules.
These would be extremely difficult to do. Times are just a super messy thing to deal with.
Yeah...i know. But i can dream can't I? Maybe in RM 9.0.
rather than a WAIT WC had a condition of if WAS. So in @Ryan780 example it could be if mode WAS away or presence device WAS away and door closes turn off the light. That way its event triggered?
Oh, don't open the "was" box....we don't want Bruce to have an aneurysm!
What's particuarly wrong with WAS. I was (he he!) thinking about this at my kids soccer match the other day, and came to the conclusion that WAS could be acheived in RM with cancel on truth change and at worst a virtual switch.
explain?
Well, first of all, in WebCoRE, the was is associated with a time period. Either the device was like this for such a period of time or was at this state at this point in the past. That requires that Rule Machine would have to keep track of the time between events for subscribed devices. I don't think it has anywhere close to the computing power to keep track of that for subscribed devices. So, you would need to create a rule with a virtual switch for EVERY one of your conditions. That is a HUGE undertaking and definitely making things more complicated than they have to be. You can get around using WAS pretty easily.
āThis is really good information to push out to everyone. As a reminder.
From reading the forums I believe I see many instances where people are thinking the Hub is
Computationally Active.
This is great for new comers to understand.
OK, don't have a stroke, but I just added Wait for Event to RM actions.
This will work for most, but not all events that can be trigger events. For now, that excludes anything concerning time, rules, triggers and global variables. I may add in the rules, triggers and variables, but probably not time related events. As I mentioned earlier, time is a very messy thing to deal with in general.
This is a nice feature. No doubt you can come up with all sorts of crazy things to use it for. It doesn't support being delayed, or being conditional (Simple Conditional Action).
@bravenel gracias, danke, tacka, merci and THANK YOU!!! That is great!!
And I assume the waits are canceled along with all other rule actions, correct?
What do you mean by that? They don't have Cancel on Truth Change. What circumstance cancels "all other rule actions"?
"Stop actions of rule X". If this was executed from another rule, i'm assuming the wait will be canceled as well.
Haven't done that yet. Makes sense though.
Sweet! Yeah, that's always the catch-all in case the "sequence" gets interrupted.
Thank you Bruce. This is really, REALLY helpful. Makes things much easier to build, even if they could be accomplished in other ways.
@bravenel, although I don't have a dog in this hunt (yet), I have been following this thread closely.
It is a breath of fresh air when the HE staff listen to their users and implement changes based on their input. I have said it before and I will say it again; I am so glad I came over to HE!
All part of a relaxing Saturday afternoon this time.... Nice coding challenge.