Is there a way to check if a switch was activated manually or by another rule? I'm using Zen72 dimmers with the 3way switch wiring. I would like to activate some other events only if the switch was physically pushed. But the only trigger option is state change - even thought the hub knows because it is logged as manual. The only thing I've thought of so far is to set a boolean global variable every place where it might be controlled by a rule and then checking that variable. But thats kind of messy. Any other better ideas?
In Rule Machine, when you choose your trigger type, scroll down and you should see "physical" options, like "physical Switch" as the trigger. That will only trigger your rule with a physical push.
In Webcore, there is an option in the dropdowns for "is Physical Event" or use an expression to check if currentEventIsPhsical() is true.
Thanks - after all these years how did I miss that option in the list? thx
Word of caution - this feature is delivered by the device/driver and not all devices provide physical actuation reliably.
Fortunately it appears that the Zen72 is one of the well behaved ones. Follows my general rule - always test it out before relying on it!
Just an additional point of clarification re: “physical” events on the hub.
The hub will treat any other system that can change device state as a “physical” event. For example, if a device can be controlled by an Alexa routine, or Lutron’s app, the hub will mark a state change as “physical.”
So sometimes the physical event means just that, someone physically touched a switch/button etc.
But it’s possible that some physical events mean that “something other than the hub caused the event to occur.”
That may not be an issue for a z-wave device, just something to keep in mind for future reference.