In the rule below, in the 2nd IF (right after timeout) the expected results are:
If the vehicle is not present the "ON: Front Entrance, Exterior ........." will be executed.
Today at 2025-09-01 23:36:12.333 the app ran but at 2025-09-01 23:36:14.071 the If statement should be false and not run the "ON: Front Enterance...." however it did.
If it helps, the "GarageVehicleSensor" is a custom device that will measure the distance from the ceiling to the floor or car to determine if the car is present. The sensor only reads the distance when asked for by the "measRequest()" command.
It sounds like you understand how the operator works.
From your logs, the IF is evaluating to true because the value is "present," which is not equal to "vehiclePresent". Is the problem really that the device is reporting the wrong value or that you're looking for the wrong one? In either case, this looks like an issue with the device or perhaps what you're looking for in the Rule, not an issue with Rule Machine or the operator itself.
If he REALLY checking if the content of variable vehiclePresent is not equal to content of variable vehiclePresent?
Never mind, I haven’t had my coffee yet.
Okay, had my coffee.
What’s the contents of variable vehiclePresent?
If it’s not ‘present’ then the condition will be true.
Okay, another cup consumed.
I see that “vehiclePresent” IS a string constant.
Maybe a comparison to the string ‘present’ would be a better idea?
This looks like a literal value of "vehiclePresent", not a variable.
If this is the same driver the OP wrote about in a post a while back, the value he's looking for is likely "present" instead -- which is the current value of the variable in this screenshot, too, and why this is not working as expected (but working correctly -- the values do indeed not match). But perhaps the driver has changed since then.
You are correct, the driver has changed. Actually, the zigbee board software has changed.
I think my use of presence and true are at the root of my error. Will update.