We have actions and Python methods for incrementally dimming devices. Those are of the form "make this brighter by 10" - it's a one-time deal.
Some users like to press a button and hold it down until the device looks right. That's how native INSTEON dimming links work - if you link a KeypadLinc button to an INSTEON light and hold down the button, the light gets brighter (or dimmer) until you let go. But this is all INSTEON specific - I don't see the support framework for plugins (or Z-wave devices, for that matter). Let's unpack this:
1. There seems no INSTEON-agnostic way of recognizing "double tap" or "hold down". I'm currently dealing with KeypadLincs, and I know how to listen to INSTEON specific commands expressing these. But if I wrote a plugin for, say, another type of pushbutton thingie that has a notion of double-tap and/or hold-down, how would I express this to Indigo?
2. Conversely, I don't see any way to tell a generic dimmable Indigo device, "Keep getting brighter until I tell you to stop." (Deluxe version: "... or until you reach this value.") Of course I can send repeated "brighten by 3" commands, but that is bound to jam something and it's also likely to be jerky and overshoot. I might also note that some devices have natural continuing motion rates (say, ahem, shade motors) that really need to be told, "start moving" rather than "move by 5".
3. Is there SDK or other sample code for making a dimmable device dim smoothly even if it's not INSTEON?
Or am I just looking at this all wrong, and there's a perfectly fine way of doing this?
Okay, okay: The actual, practical application here is to link a KeypadLinc button to a Lutron shade controller. I want "hold down this button to move the shades; stop when I let go." (Lutron has "start moving" and "stop moving" commands. It doesn't have "move by 5.") But that plugin is actually about linking a KPL button to any device that can dim, so I want it to be as Indigo-generic as possible.
Cheers
-- perry