Reading todays posts I saw something I felt was worthy of a deeper discussion. Toggle. As it pertains to virtual drivers, switch drivers and group drivers.
I once dove the deep hole of learning and writing a driver. It was based on the shoulders of a giant but I needed abilities and 'updates' for newer devices.
I recognize that devices have command sets - and not every command is available in a driver. In some cases it's nearly impossible to find documentation of these capabilities, or sometimes no one is aware the device has extended functions.
I note that a number of my switches whether they be Group Switches, public drivers /generic switches and specific switch drivers that 'Toggle' isn't a button on the device - ie; the driver has no built in ability.
I customized my driver and added this ability. It was hard to do. I learned about timing and about command sets for hardware devices. But I did succeed.
Often, I now rip open drivers, customize them and add a number of features I like, including AutoOff, Toggle and Flash.
I submit that developers who create new drivers and future updates to old drivers (including embedded HE provided drivers) should add enhancements to support a similar 'additional' capability set.
Autooff, Toggle and Flash are VERY valuable features. In my case, toggle is critical to my environment since I use smart bulbs with smart switches. Adding this feature to my drivers allows me to make smart switches play nicely with my smart bulbs.
The cost is I'm now deviant. If an updated driver comes out (which is albeit rare) I have to create a source patch and modify my fork. But I have extended control that others using 'generic' drivers don't have. It's a trade off that has paid off.
Thoughts and discussion? (begin the belittling).