Rule 4.0: Retirement of Restrictions

Restrictions being Retired

Rule 4.0 is no longer going to have a section to define Restrictions. Restrictions were specified conditions that would prevent a rule from running. These are being retired for two reasons:
  1. Restrictions are no longer needed, as all of the conditions can be incorporated directly in a rule.
  2. Restrictions introduce unneeded overhead for every rule, while most rules do not use them. Thus, by retiring them, all rules will become more efficient.
  3. Nothing is logged when a rule is Restricted. This offers no insight to what might be going on.

If you have a Rule 4.0 that has Restrictions, they will still be present and continue to work in 2.1.3. In the next release, 2.1.4, they will become fully retired. In 2.1.4 Those rules that have Restrictions will no longer follow the Restrictions, and they will disappear from the rule. In the meantime, before the release of 2.1.4, all Restrictions should be reworked into the logic of your rule.

Here is a guide to one way to incorporate the Restrictions into your rule. In many cases, you may find a better way than what is shown below.

Only between two times: IF (NOT Time Between X and Y) Exit Rule

Only on certain days of the week: IF (NOT Day in [Tuesday, Wednesday]) Exit Rule

Only between two dates: IF (NOT Between July 1 and July 31) Exit Rule

Only when mode is: IF (NOT Mode in Evening, Night) Exit Rule

Switch to disable rule: IF (Switch On) Exit Rule

Disable with Private Boolean: IF (Private Boolean false) Exit Rule

Notice that for most of these it uses NOT Condition as part of a Simple Conditional Action. This could be simplified by not using NOT, but restating the condition in the reverse sense. For example, instead of NOT Time Between X and Y, you could use IF (Time Between Y and X) and get the same result. Also, each of these simply exits the rule when the Restriction is true (what the former Restrictions did as well). This could be changed so that the Restriction is a top level IF-THEN around all of the actions.


Dagnabit Bruce! I liked Restrictions!

I know, I know. Another opportunity to learn!



This will only affect RM 4.0 rules, correct? Just want to make sure I am checking all the rules I need to.

I'm curious as to this answer as well because the standard previous policy was that all previous versions of RM "will work and will continue to work as they were implemented" and there is no need to re-write rules to the new RM version? I haven't even wrote any 4.0 rules yet......

Is there an easy(er) way to tell which Rules use Restrictions, other than checking them one by one?


Well, okay, then. :laughing: Off I go to one-by-one them...

Just read the title of this topic!

If there were a change anywhere else of this magnitude, it would be announced. This only affects Rule 4.0. I figured that now was the time to do this, before everyone is too heavily invested in 4.0. Sorry for the inconvenience.

1 Like

A simple "Yes" would have sufficed. Thanks.

1 Like

It may make sense from your perspective as developers, but it really doesn't make any sense in terms of CRM...

Why would you expect most customers to be ok with having to implement more logical conditions instead of drop down menus?

There's a thing to always remember in the field of development, in my humble opinion: never expect customers to become more adapted to you product and always make sure the product is adapted to their usage. For now, you might count on the fact that we're a pretty fair number of geeks playing with your product, but you might want to bet otherwise on the long run. It kind of reminds me of the mistakes made by The Not So Smart Thing, having a poor list of built-in apps and hoping that all their customers would be nerdy geeks. You clearly offered a solution to this lack of common sense with RM (first published on ST's forums). Now, adding a modification like this one, forcing people to change their current well-working settings... not a good idea. It's just as if Mc Os asked of you to redefine your default settings after a minor upgrade.

Also, judging by how great your product has turned to be (honestly, it's very stable and I thank you for this, you might have saved my mariage here... haha!), it seems clear that bettering customer's experience was your goal. Making it harder for non-geeky users doesn't seem like it's going into the right direction. Just ask someone foreign to programming to compare both versions, one having to use the provided explanations in your post on how to replace restrictions by conditions, another one using drop down menus, and let me know if you find even one who will tell you they had a better experience using the conditional statements (on top of those they already had to use while setting their rule).



I must say that your team is incredibly reactive. I'm currently reading all the fixes you added in the firmware version. Just two words: THANK YOU!

You should keep in mind that Rule 4.0 is all of 3 weeks old, so there is not a huge investment in it by users. Also, if you see the reasons for the change in the OP, these are to improve things for users, not to make them worse. Complexity confuses users. More options are worse than fewer options. There has always been confusion about when to use a Condition and when to use a Restriction. There has always been confusion about the fact that a rule that turns a light on and back off again won't turn it off if it becomes restricted. There has been confusion because there is no logging while restricted. It's my judgement call that in keeping with the simplification that Rule 4.0 represents, in the streamlining it brings, that removing this duplicative, conflicting and confusing dichotomy makes sense.

How many of your 4.0 rules have Restrictions? Or is this a theoretical point you're making?


I see positives and negatives in both points of view here.

Writing conditional logic (for new users) is way more complicated than that of drop down menus.

Having to many choices to choose from when making rules can also be confusing (to new users)

I would foresee these changes to be perfectly fine, and for those of us lucky enough to be on the platform at this stage before the changes, this is a non-issue as you "currently" have the ability to make MASTER 3.0 rules and clone them as needed.

However I would think at a future date the trade off would be to add a bit more complexity to the "SIMPLE" lighting/motion etc apps (for new users), and leave the more experienced logic rules for Rule Machine.

1 Like

This is exactly how we see it also. Rule Machine gets a lot of attention here, but it is not intended to be a tool for beginners. Simple Lighting on the other hand, and Motion Lighting, are intended to provide for most common simple automations. You can see the super complex rules that people are writing with RM -- these are not for beginners to home automation to tackle.

1 Like

90% here, have just got done removing them from 10 fan routines. NBD, sort of fun.
I think I just improved them while doing this.

Quite some actually, simply because I like to have guests at home and when that happens, a "guest mode" is trigger once they enter their lock code. Same goes with house keeping. When the guest is my mother in law, I don't want the lights to turn on with motion or windows to open in the middle of the night in the very room she's sleeping in and that usually won't be occupied at night. It's as simple as that: I have set a bunch of rules and spent quite some time on them and now I'm going to have to reedit them all. I would have liked not having to do so, especially after spending most of my vacation time migrating from ST. There's also the fact that editing a rule can be tricky sometimes. I had some bad experiences losing an entire rule after selecting an action or a condition when not supposed to (I wish I had made a screencast of this actually), getting an error code and having to return to the application page and losing all recent modifications... or even having to delete and restart so much conditions stacked up in weird ways sometimes. Human error, every time, of course, but still kind of unavoidable when migrating and implementing 24 rules and more apps.

Thanks for your answer.

This contradicts your previous statement:

Non-beginners would probably not have any problem with the matter stated above...

Clearly, I should have done this contemporaneously with the introduction of Rule 4.0. I'm sorry for the inconvenience. This is one of the only times ever that a feature has been discontinued in RM. I won't be eager to do it again.


Thanks for the acknowledgement here! It's likely, though, that I do not have all the needed elements to fully grasp why you got to make this call and how necessary it must have been. On the other end, I'm now in the process of modifying my 4.0 rules accordingly and, just like @woodsy, it's sort of fun (except for my wife... she really likes the idea of automation being... automatic... can't blame here for being so right, though, can we?).