I have no clue if this is popular but I have dimmers in each of the rooms in our home where we'd like to setup double-tap-up to make the light in that room to go to max brightness and double-tap-down to go to min brightness but again, only in that room.
I had just started using button controller for each device but I thought that I'm basically creating duplicate button controller rules just for each device in each room.
Is there another way, such as rule machine, or maybe another app, whereby if I double-tap-up on a dimmer in a room, it will do my requested scene? And this rule apply to any and all dimmers of the same type that I select?
You will likely want to look at cloning the child button controller app. Set one room's rule up and then open the app setting page by clicking on the cog icon, select the clone option and go from there. You will eventually be promoted to select replacement devices, at which point you can select devices from the different room. You can also name the cloned app differently to represent the room it is for.
I'm involved in that linked thread--I'm using Rule Machine, and cloning-and-modifying seems to be the only option currently for RM too. The conditional logic option could probably work, but there are compelling reasons to avoid this
You actually should be able to do this in Rule Machine now:
Trigger = all of the button/scene events you want to respond to;
Actions = "Custom Action," then:
i) check "Use last event device,"
ii) choose capability "Dimmer,"
iii) choose "setLevel" for the command
iv) put in 99 for the first (and only required) parameter, optionally with a second numeric parameter for transition time if you don't want to use the device/driver default.
However, I'm having problems at step 2.iii, where my list of commands never populates on firmware 2.3.0. This happens in both Button Controller and Rule Machine, either of which should be usable for this.
So, not sure what to say about that, other that if anyone else can replicate what I think are bugs (bonus points if you're on the beta and it's even worse with a crash at that point), let me know?
Hmm, I guess you need to choose the capability of the trigger device, then all supported commands will appear, regardless of what capability you select. Not intuitive, but that worked for me: setLevel() appeared when I chose "Button," like I did for the triggers.
I was able to make mine work with a "Button" trigger (button 1 pushed), then also "Button" for the Last Action Device capability. The setLevel() command still appeared in the list for me. I'm not sure what it looks for to populate that list--the first selected device, an arbitrary device, or the sum of the commands for all selected devices, but all of mine happened to support it. (I don't think you'll want your second trigger, but it's weird that it only works for you if it's there, if I'm interpreting that correctly.)
I do see the setLevel() using the button only capability. Sorry, I must have missed it when I initially looked at the drop down. This works now (I just tested it on Dining Room Light so that's why its listed):
Yes, this works, but it's not less work than just cloning the rule. When cloning, I just have to swap out the device; the button action is retained. When doing it in the custom action, I have to add the device and set the button action.
Yep, great call, this is necessary.
I just did a nonsensical condition like "Dimmer reports value < 0" since you don't actually want this fake "trigger" to ever fire.
The biggest downside of doing it all in one rule with the custom action and "use last event device" is that this more than doubled the delay between trigger and action. When using individual rules, my lighting scenes were visible in under ~1.5 seconds (measured with a stopwatch). With the single custom action rule and only two of my dimmers added for testing, the delay was consistently ~3.5 seconds. So, I guess I'll stick with cloned rules until I have time to learn WebCore or Node Red.
You should only have to select this once, not for each button. It seems simpler to me, and it definitely would be if you ever want to change the action in the future (one rule, not multiple), but I guess everyone's preferences are different.
A clone or other method that directly references the device instead if going through an additional layer of abstraction like "last event device" is likely to work a little faster, but I wouldn't expect it to be noticeable in real use, and your delay in particular seems extreme to me. There could be something else going on. But glad you found something that works, in any case!
Maybe I'm missing something, but in the single rule, I have to add each dimmer's action to the Trigger Events section--"Kitchen Dimmer button 2 held," and "Dining Room Dimmer button 2 held." It's about the same amount of work as cloning a rule, choosing a different device, and editing the rule name.
Exactly this--both options seem similar in terms of effort.
Makes sense, thanks. I'm not dissatisfied with the ~1.5 second delay for scenes (regular on/off commands are nearly instant). 3.5 seconds is offensive, so that wasn't an option. If I can find a way to reduce the 1.5, I'd be thrilled.
Right, that is expected behavior. I guess I'm still thinking as if you are creating an entirely new rule. But there's still an advantage if you ever want to change the "dim to 99" action for everything at once.
Ah, yes. Maybe using variables I could still have one place to change dim levels, but even this only works for changing the value of an existing action. Your way beats mine if you want to change the entire action. But I have that bad delay, so...tradeoffs. Thanks again for your help here
I tried the cloning route and can honestly say that the solution as shown in the solution shown in the screenshot I posted above is much simpler if all the buttons are the same for the devices. You just select all the devices once, select the button number once, and the button action once. The key is in the actions where it says "last device" which is where Hubitat set the button scene accordingly.
Absolutely LOVE this solution and its simplicity. Thanks @bertabcd1234 !!!