If I create a Rule Machine rule with a trigger type of "Button Device", then clone the rule and attempt to change the trigger, I find it is locked to "Button Device" and can't be changed.
This is likely intentional on the developer's part--"Button Device" drastically transforms the RM UI into something resembling the standalone Button Controller app (gone are the conventional notion of triggers at all, and there are several different "actions" sections for different button-related events instead of just one as normal). I'm guessing they were not able to come up with a logical way for this (de-)conversion to happen once a choice was made. Creating a new rule is probably best (this is my preference for any significant change--it helps avoid phantom "in use by" references if you happened to, say, not remove a device before removing an action in which it is used).
That being said, if you haven't checked out the standalone Button Controller app, do that too. Similar idea (and it was briefly retired after the introduction of the above feature into RM but brought back as an example of one way to encourage keeping things simple) with only slightly less power since you don't get some RM-only features like variables.
I just tried the "Button Controllers" app. My four Iris Smart Button 3460-L devices show up in the button device list, but allow NO actions to be set. The actions drop down list is empty, but for a partially obscured item:
I started fooling around with this since suddenly ALL of my Iris Smart Button 3460-L devices started randomly indicating either held or pushed on a single short press. Re-pairing makes no difference. It is on all four 3460-Ls.
All working working fine prior.
A shutdown/reboot did not help. Pressing the "Configure" and "Save Device" buttons on the Device page for each button made no difference.
Interesting...on the device page, do you see anything under "numberOfButtons" under "Current States" in the upper right? This is what I mean:
Also, what do you mean with "indicating" a hold or release? You'll always see the last button number associated with a specific button event (e.g., pushed or held) on the device page, which you can in my screenshot above, too. This doesn't mean Hubitat thinks it just happened or is currently happening--just the last button number for each of these events when they did happen.
Well, I hit "Save Device" and "Save Preferences" in the Devices area for the button. This time when I selected it in the Button Controllers app, it allowed me to select "Pushed" or "Held", which it did not do before. I was also able to set actions normally.
Oddly, the button started behaving again, detecting "Pushed" and "Held" states correctly.
Very confusing. I can configure the button three ways:
In the Rule Engine as a Button device.
In the Rule Engine as a Button Controller Device
In the built-in Button Controller app, which looks identical to the interface in the Rule Engine Button Controller device.
Could anyone explain the differences among these options?
It may be that when I re-paired Button 1, I did not hit the "Save Device" button. Seems I had to do that when originally pairing to get the Number of Buttons to show.
I'm not sure if "Configure" does anything useful for these devices, or if they need to be woken up to respond to the Configure command.
I meant that a single short press (clearly not "held") showed in the log randomly as "held" or "pushed". The "pushed" state detection became unreliably.
The indication on the devices page show pushed and held as "1" if those states were ever detected, so the Log was a better indicator of whet was being detected.
Since migrating on of my button Rule Machine routines to the "Button Controllers" app, the detection starting working reliably again.
Well, I think my issues were coming from having two rules in the Rule Machine using "Button Device", one rule for "pushed" and the other for "held".
I see that using Button Device in either Rule Machine or the Button Controllers app allows setting up a single rule with separate actions for each button state.
The one difference in the Button Controllers app and using the Rule Machine is that the Button Controllers app does not seem to allow conditional actions. Not sure if this was an oversight.
Other than that, combining both states into a single rule seems to have resolved all the issues.
Conditionals are one of the RM-only features, but almost everything besides that and variables should be available in BC.
The "Button Device" trigger is indeed intended to allow you to create one rule for all button-type events (pushed, held, doubleTapped, or released for any button number--all dependent, of course, on what the device actually supports). This is the way Button Controller more or less always worked, and the "Button Device" trigger was added to RM to emulate this behavior there if you want the "full" power a rule gives you instead-- a bit different from conventional rule triggers in that it drastically alters the UI, but easier than creating a separate rule for each button event (still possible with a "Button" trigger if you really only care about one specific event).