[2.2.7.* C5] Rule Machine Bug with variables and Condition Eval

Since updating to the 2.2.7 series, I have a simple rule that is broken.

I use a virtual shade to manage all shades in a room. When the virtual shade's position changes the rule triggers and then sets the position of all the real shades.

The virtual shade position value can be 0-100. 0 = closed, 100 = open. These values are from the Hubitat virtual driver and they worked in this rule until version 2.2.7.*

After the upgrade, when the position value is 100 rule machine does not evaluate the virtual device attribute correctly.

The rule triggers due to the device attribute change, and the Rule Machine UI indicates the attribute value is 100, but it will not set variables with the value, and conditional tests do not evaluate correctly when the attribute value is 100.

If position value is < 100 all is well, local variables are updated and shades move to the desired position.

The attached image shows the rule machine state after I have:

  1. Reset the test by setting the virtual shades position to 99.
  2. Changed the position to 98.
  3. Set the position to 100.

This looks like something @bravenel might have to look into.

You have to turn on Trigger and Action logging, and show the logs of this happening. These are not dynamic pages, so they may or may not reflect the real values. Only the logs will tell the whole story. This is not a part of RM that was touched in 2.2.7.