There is a known bug in Rule 5.0 Predicate Conditions that will cause them to fail when certain types of devices are used in the conditions. This bug has been addressed, and the fix will be in the 2.2.9 release. As a work-around in the meantime, you would have to implement the effect of the Predicate Condition as a Conditional Action at the beginning of the rule.
The affected device types are as follows:
Fan Speed
Smoke detector
Carbon monoxide detector
Carbon dioxide sensor
Water sensor
Tamper alert
Garage door
Door
Power source
Thermostat mode
Thermostat state
Music player
Thermostat fan mode
A similar bug prevents Custom Attribute from working properly in a Predicate Condition.
When 2.2.9 arrives, will Rule 5.0 rules needs to be rewritten (similar to how Connectors had to be deleted and re-created), or, instead, will the fix be in a Rule 5.1 generation, or. will the 5.0 rules simply have the issue fixed? Thanks for being candid, just trying to plan.
The bug fix is simple. Any rule that had such a device in Predicate Conditions in Rule 5.0, (a) would not work (so why would you keep it around?), but, (b) the fix is such that opening the rule and hitting Done would fix it. The bug is that the subscriptions it creates for the Predicate Conditions for those devices (and Custom Attribute) are wrong.
2 Likes
Thanks. Even I can understand that explanation.
1 Like
I am seeing an issue with Predicate Conditions and private boolean interaction. For a Predicate Condition like:
if private_boolean = true // initially true
the rule executes once, then when private_boolean goes through a cycle of true->false->true the Predicate Condition stays false and the rule will not execute again until the rule is updated via 'Done'. This occurs whether private_boolean is updated inside the rule, or through another rule.
Is this another example of the same failure-to-refresh issue in this thread ?
I will look into this. Could you show the rule that doesn't work.
Creating a simple test rule, it seems to need a Wait Condition to tickle this issue.
Here is a stripped down version of my actual rule:
Here is the secondary rule:
Initially when the trigger event occurs the rule (app:612) executes OK and is stopped by the secondary rule executing:
After this occurs, the trigger event (switch dev:582) no longer fires the rule:
There is nothing in the logs for app:612:
Even though the Predicate Condition appears to be true:
Please let me know if I'm missing anything.
Yeah, there is some interaction going on with Wait for Conditions and the Predicate Conditions working properly. I will look into further.
2 Likes
I have found this bug, and put in a fix for it. The fix will be in the 2.2.9 release. It is caused by the Wait for Conditions.
4 Likes
The fix for this is in a new hot fix, instead of waiting for 2.2.9.
2 Likes