Is there a way that an item’s binding can handle and consolidate commands to a group?
My use case is the following: My Thing has multiple dimmer outputs (each is one Channel), which can be controlled all at the same time with a single native command. Using OpenHAB groups would be possible, but the outputs would not dim 100% synchronously, because the commands are sent one after the other and one dimmer output would start slightly before the other.
I would expect a binding like that to offer a separate Channel to control the set of Dimmers with one Item. That Channel would basically represent that single native command.
I can’t speak for how to code it, but that is how I would expect it to work from a user’s perspective.
Create a separate set of ‘value’ dimmer channels that save what they have been set to in the ThingHandler but do not immediately propagate the update commands
Create a ‘set’ channel that triggers sending the single command with the values of all the ‘value’ channels.
If you wanted to get really fancy you may even be able to create a ‘scene’ channel using that kind of method.
Thank you both for your ideas! A third approach came to my mind, which I finally realized:
I implemented a Profile, which can be optionally applied to a dimmer output Item. When the Profile’s argument is true, all outputs are controlled when switching the Item:
Dimmer Out {channel="lcn:module:aaa:bbb:output#1"[profile="lcn:output", controlAllOutputs=true]}
Profiles can handle commands from Items, before they arrive at the binding. In this case, the Profile translates the PercentType/OnOffType into a custom Command object, to which the argument from the Item definition is added. The binding handler can handle this custom Command object in a special manner, then. I don’t think Profiles packaged with a binding are restricted to the binding’s Channels.
I must admit, I don’t know if this is the intented use for a Profile, but it works.