I agree. It is basically cosmetic. And since knx allows it, I like to use such common group adress for synchornised actions.
I have an edge case where it is needed :
3x âVelux SMLâ shutter, actored with an unofficial solution (knx switch with common power supply)
Moving the 3 shutter synchronously with the same address works
If there is a delay, when a shutter start moving, the others stops
But now I think this kind of feature is easier and more usefull to be added in the group integration. (Extend integration, to be able to override each default group action with own script. Then calling knx.send service or somehting else more generaly).
Do you know of any other integrations providing âgroupsâ of things? Iâm not not sure if there even is any API for that.
Creating a normal cover entity with this address should work well then. Not sure how things like voice assistants handle would handle that, though as there is no semantic about the one entity being a group of those 3 others.
I donât know if there are other integrations providing grouped actions.
Yes configure the 3 covers as a unique cover work, but the _state addresses are returned separately on the bus from the 3 entities. The group state should also update when the shutter are moved individually, and by initialization: there is no group address which can respond to a Read telegram for the group state.
Currently I can only mix the âgroupâ and âknx coverâ behaviour with the logic at the first post (Template partially reimplementing âgroupâ features),
or Template managing 2x hidden helper entities: knx cover for actions & group cover for updating state from children.
For an implementation, I guess that wouldnât be easy to solve. If one is 0%, one 50% and one 100% - whatâs the state of the group then. Or one is opening, another closing. There is no right or wrong answer to thisâŚ
For your specific situation I see 3 options
template providing the state as you think it fits. Expose to Knx â readable by Knx entity
Knx Cover without position addresses (will calculate position - might not be desired)
Template cover with Knx.send actions (maybe assumed state or templated from multiple other entity states)
For my project I will continue to use option 3, so I can customize the group state like I want it.
For me, it is solved, I can do it with templates.
As feature, it would be nice to expose override options in the group integration config :
# Example configuration.yaml entry
cover:
- platform: group
name: "Window Covers"
entities:
- cover.hall_window
- cover.living_room_window
cover_open: { data: { address: "20/0/20", payload: 0 }, action: "knx.send" } # if key exist, run action, if not => default group behaviour
position_template: # if key exist, use this template to get position, if not => default group behaviour
An other pro is: You can implement your own logic to combine states.