Differentiate physical from virtual switch on/off?


(Fernando) #1

Hi All, I’ve been looking around but couldn’t find a solution for this…

I have a connected z-wave switch (WD500-Z) with my kitchen lights. And I have an aeon micro dimmer in my ceiling fan lights. When I turn wd500-z switch on, a CoRE rule turns my ceiling fan lights on as well. If I turn the switch off, I’ve also created a rule to turn them both off. However, If I turn my kitchen lights off (or on) from my phone, smartthings app, alexa, etc. I don’t want the ceiling fan lights to follow. Basically I only want the turn both on/off if someone uses the “physical” switch. I know on the switch device logs it differentiates where the command came from, but can I integrate this somehow in my rule engines?

Thanks!


#2

In CoRE, there is an option for Physical or Programatic/Digital (i forget which one exactly) under Interaction.


(Fernando) #3

You’re the best, I found it by enabling the “expert” mode in CoRE! :slight_smile: Thanks!


#4

Good deal, I keep forgetting about mentioning expert mode.


(Fernando) #5

I guess I was too quick to think it was working…

For some reason it does not detect my switch off (with the linear switch) as a “physical” switch in the interaction type… Any clue? Thanks!


(Fernando) #6

Answering my own post… for some reason devices no longer report the physical / programmatic flag. They don’t even report the device type anymore (if it’s hub, device, etc.). They all come as device in the evt.device, so CoRE (or any other app) wouldn’t know to differentiate.


#7

Maybe someone has modified the device handler to report it. My experience with switches are only with the GE ones.


#8

Im just spitballing here but as a work around maybe you could create a variable or virtual switch that will control your z-wave switch, set up a piston that will turn the zwave switch on/off when the variable/VS is on/off. Then write logic in your current pistion that will check the status of the variable/VS before turning on the ceiling lights?

Although this wont work well if you turn it on with the phone but turn it off physically…


(Fernando) #9

Yes, that sounds a great idea!

I’ve tried using different device handlers (there’s a one made by the community for linear) but I still get the device as programmatic. I’ll try to look into the GE handler to see if there’s some kind of injection of physical / device type, or maybe this was a HUB update I got you you didn’t?

I’ll try this: all my exposed devices on app / ios / etc. will be a virtual switch. CoRE will just bind this virtual switch to the actual one, replicating the behavior. Then when I get an action on CoRE from the actual switch, I know for sure it’s physical and I can tie with other stuff I want to turn off together.