Some background, if you care: Hubitatâs button capabilities donât technically require implementing pushed()
, held()
, and released()
commands, but most devices, apparently by convention, do. (There was some debate about this in when the capabilities were debuted, so this could also be leftover from that.) What they do is simulate a âdigitalâ/virtual press so that you can, for example, trigger an automation that would ordinarily require a ârealâ button press by way of these commands instead. More for Inovelli than for you, in case they arenât familiar.
Looking at Inovelliâs drivers for the products I assume you might be talking about, the Red Series switches and dimmers, I seem to remember their drivers doing this at one point. And it looks like all the code is still there, just commented out â and itâs also implemented a bit differently, but again, the above is just a convention and not a requirement of any âstandardâ Hubitat capability (e.g., PushableButton
). It appears that you could get this functionality back if you uncommented this block of code towards the beginning of the file (this is from Inovelliâs LZW31-SN driver, but I imagine the others are similar):
/*
command "pressUpX1"
command "pressDownX1"
command "pressUpX2"
command "pressDownX2"
command "pressUpX3"
command "pressDownX3"
command "pressUpX4"
command "pressDownX4"
command "pressUpX5"
command "pressDownX5"
command "holdUp"
command "holdDown"
*/
(and by âuncomment,â I just mean "remove the enclosing /*
and */
symbols).
Again, at least as of the current version of their driver code, this will still work simply because these methods are still defined later on in their code. And youâll have to use the commands as written, like pressUpX1()
instead of push(1)
or RMâs built-in action that does the same, which means youâll also need to use Rule Machineâs âCustom Actionâ type to execute these methods. The âmappingâ should otherwise be straightforward from the custom command names.
So while Inovelli will have to comment on whether they want to implement this in their driver by either un-commenting the above or switching to Hubitatâs conventional-but-not-standard commands like push()
and hold()
, the above should work either way with very little modification on your part.
(PS - I also wrote a new-ish custom driver that implements these commands and I think is as Hubitat-ty as possible while still giving âaccessâ to all device features, but the button-number mapping is different from Inovelliâs. I could share that with you if you were interested, or I might post about it sometime hereâŚ)