To celebrate my 6th Year Anniversary of joining the Community:
Continuing the discussion from [Confused about Simulated Buttons and ActionTiles]…
So the response from Samsung Developer Support was in the form of a question:
Hello,
As of the moment, we do not have the capability “momentary” you are requesting, unfortunately.May we ask what you are trying to use the momentary capability for? So we might be able to try and find a solution for you.
Kindest Regards,
David, SmartThings Developer Support, https://smartthings.developer.samsung.com
While I can start this off with our own use case (i.e., Our feature of being able to “kick off stuff” with Momentary button Tiles in ActionTiles), I would like to have other folks input (like @Mavrrick58, @RBoy, @625alex, @anon36505037, @eibyer, @jkp, etc.) to add to the response. Maybe a single consolidated response will invoke a stronger response from Support…
A device of Capability “Momentary” is an Actuator (like a Switch) that accepts the command push()
. SmartApps which are subscribed to this device+command are common, as many SmartApps are looking for a simple unary trigger condition that is not a binary condition such as Switch on/off, nor Contact open/closed, nor Motion active/inactive, etc…
This is not the same as a Button, but may be used in a similar way. A doorbell DH, for example, has no commands. It is a Sensor: It senses (and fires an event) when it has been pushed
or held
. A Button Controller is just a set of buttons. It muddies the waters, but it would be nice if Button also had a Attribute duration
indicating how long the button was held, or if it sent 2 events pushed
and released
- but we’re talking Momentary, not Button here.
ActionTiles is a web based UI for SmartThings that communicates via connector SmartApp - Like Alexa. We need to be able to present the user the ability to “press” a Button, but since Button’s don’t have Commands, the connector SmartApp cannot activate a Button. It cannot act as a doorbell trigger or scene trigger or panic button. Instead, the customer can spawn a Virtual Device of Capability “Momentary” which the SmartApp subscribes too. Thus, the user can “push()
” that “Momentary button” in ActionTiles, or ask Alexa to “push()
” the Panic button.
Yes - There are workarounds / alternatives:
-
A Momentary is like a Switch that immediately turns itself
off()
after being turnedon()
- but that issues 2 Events instead of 1. Wasteful and confusing. -
In the our use case (ActionTiles, Alexa, etc.), the Virtual Momentary button is acting as an intermediary to some other function. A Virtual Momentary button that is linked to ring a Doorbell, via an Automation SmartApp, could just call the
ring()
command of that Doorbell. But no such Capability “Ring” exists - Capability “Alarm” is inaccurate. Momentary lets us cover all sorts of unforeseen unary Event triggering cases without needing exact Capabilities for them.
Virtual Switches (which are both Actuators and Sensors) are currently being used generic as binary status indicators and binary status setters (e.g., “armed/disarmed” - since there is no Capability “Security System”). Virtual Momentaries are just a simpler case. A pure Actuator.