Cancel fade on manual dimmer change?

This seems like it should be easy but I'm not seeing a way to do it. I set up a rule to slowly fade my kitchen lights up but if I manually change the dimmer level the rule will keep going and doesn't realize the dimmer level changed. If it's at 15 and I set it to 35 the rule will change the dimmer level to 16 instead of 36 or stopping.

I would like to create an additional rule that cancels the fade action if I manually change the dimmer, but I don't see a way to make a rule that can detect that the change was done manually via the switch, alexa, or dashboard.

I don't believe you can cancel a fade over time once it has begun. I don't think it works that way.

Try using cancel timing actions.

So if buttons are pressed you will use cancel timing actions and select the rule that is doing the dimming.

This is how I’m doing it now. I haven’t tested.

Let us know ?

1 Like

You should be able to, assuming this is "dimmer fade": Rule 4.0: Retirement of Restrictions

No, this is dimmer fade over time. This is a different function. But no, you also cannot cancel a dimmer fade function except by changing the level after you are done. In fact, if you issue a setLevel in the middle of a dimmer fade over time you get some very interesting, psychedelic/seizure inducing lighting.

Hey @fpstassi, I got this working for me, but it was a bit involved. I had to set up 3 separate rules (in addition to the rule that started the dimmer fade).
The first rule: when the physical dimmer toggled, or level changed, cancel any timers from rules that affect that switch.


This action is under "Set Private Boolean, Run/Cancel/Pause Rules -> Cancel Rule Timers"

This alone is good enough if you're only concerned about cancelling fades using the physical switch, but I also wanted to be able to cancel it using a dashboard tile, from my phone or computer. To do this I had to set up a Virtual dimmer, and create rules so that when I changed the virtual dimmer, it would cancel any timers, then propagate the changes to the physical dimmer:

I hope this helps. Let me know if you have any questions about the details.

1 Like

Why not just have a virtual button on your dashboard to stop the dimming rather than a virtual dimmer? A dimmer seems unnecessarily complicated.

Thanks, @mik3 and @stefan2718 I was wondering about this same capability! There are times I don't want to wait for a timed dimmer event to complete and just want to go to a dimmer default value. I just set the default values before the cancel and I'm done! This will raise the WAF a little.

I thought about using a button, but I didn't want to have to explain to my wife why she might have to hit this button before the lights would work as expected. Also, it makes integration with google home easier, as I can use the virtual dimmer as a proxy for the real dimmer without having to use the button and then the real dimmer.

But the virtual dimmer is going to change just like the real one if they are linked together, so won't that virtual dimmer change during the fade just like the real one?

That, unfortunately, is the awkward part of my current setup: it's not a two-way link between physical and virtual device, it's only a one-way link propagating changes from the virtual dimmer to the physical, but not from physical to virtual. This means that the state of the virtual dimmer won't always be reporting the actual state of the physical dimmer, but it will still be sufficient for changing the state of physical dimmer.

I've only set this up yesterday, so I've yet to see if this is an annoying or helpful setup. :thinking:

Then how will the virtual dimmer work at all? You won't be able to actually know what the level in the room is. That would be extremely annoying to me.