Hubitat Virtual Button Workaround

Right, that’s why I suggested to two alternative approaches where you wouldn’t need to create a device for each button press.

Rule Machine

Since you already have a Rule Machine rule based on the button presses, you could add a ‘Cloud End Point’ trigger to the existing rule (alongside the existing Virtual Button triggers), then use the special Hyperlink Syntax to directly call the ‘Cloud End Point’ for your existing rule along with the value of the button number or whatever other parameter you wanted to pass to the rule.

In any SharpTools Tile which supports a hyperlink as the action, you could use a Hyperlink URL formatted like:

$.get("https://cloud.hubitat.com/api/...etc...")

The Hubitat Rule Machine documentation on this isn’t the most clear thing, but you create a Trigger in your Rule Machine rule with the type Cloud End Point then copy the Cloud End Point URL they provide you.

https://cloud.hubitat.com/api/{instanceId}/apps/{appId}/trigger?access_token={yourToken}

You can then add on a /{yourValue} to the URL and that gets passed to the rule and is accessible using their standard %value% reference.

https://cloud.hubitat.com/api/{instanceId}/apps/{appId}/trigger/hello?access_token={yourToken}
                                                                ^^^^^
          send 'hello' as the %value%   _________________________/

SharpTools Rule

Similarly, you can use the Hyperlink Syntax to run a SharpTools rule. So in that case, you would setup a single SharpTools rule that had an HTTP Trigger with a parameter for the button number. Then the Flow would have a single action to call the push() command with your passed in button parameter.

$.runRule("RULEID", {"button": 1})

When configuring the push() command, you would tap the </> next to the first push() argument then when you choose the variable for it, it’s under Context Variables > Event > HTTP > Parameters

I wouldn’t call that a fair assessment. There hasn’t been much interest from the community, so other highly voted on feature requests have been prioritized. If the HE Virtual Button feature request got more votes from the community, that could change the prioritization.

There’s only 3 votes on the feature request for Hubitat Virtual Button support though. I suspect that’s because there’s several alternatives to accomplish the same thing a Virtual Button does.

Hubitat Virtual Button Custom Tile

Here’s a Custom Tile that provides direct support for the Hubitat Virtual Button device type.

:fast_down_button: Import HE Virtual Button Custom Tile

You can select any device which has the PushableButton capability that a virtual button should have.

Then you can either configure it with the preferred button number you want it to push() each time the tile is tapped… or leave that field blank and it will prompt you for the button number you want to press.

And it has some basic customization for picking an icon from Font Awesome or Material Design Icons for display… or for displaying text in the center of the tile instead.

More notes on the HE Virtual Button custom tile here: custom-tile-demos/he-virtual-button at main · joshualyon/custom-tile-demos · GitHub