I use motion sensors and mode changes to trigger lighting scenes and I can override this with a virtual switch.
Is there a more elegant way to handle manual overrides without needing to disable the automation via a switch eg detect if a light change was made from a source other than the automation and then disable the automation for a period of time ?
Yes, there are multiple ways of doing this. I typically use Rule Machine (RM) to do things like that.
As an example, my kitchen light turns on/off automatically with presence in the room. I have an automation that disables this for 1 hour when someone turns off the light manually.
I have a virtual switch that, when turned on, disables automations for that light. When I manually turn off the light, it also turns on this virtual switch, and there is also a delayed turn off on the virtual switch.
I also use the VS approach @Sebastien describes, including disabling my "motion/sensor"-based lighting in Room Lighting. Which makes me thing I should make a request I should have made while ago...
For me I don't need to figure that out, I have smart bulbs, so use of a switch / button is enough to signify "manual" control. If you have a smart switch then you will need to detect physical vs digital control. How to do that exactly I am not 100% sure, but I know it can be done.
With switches I need two separate RM rules. One triggers on âphysical onâ or âphysical levelâ turning a hub variable âtrueâ. The other triggers on âphysical offâ and turns the same variable âfalseâ (have to do this in two rules not one as itâs not possible to do a IF physical on or off).
As @johnwill1 indicates, there is a specific trigger that will allow you to do this. Some switches, like the Inovelli ones, will also have button events with each press of the switch.