Zwave multicast is awesome, however it can be difficult to use. I’m not sure how many people actually use it. It took me quite some time to generate a script that turns on/off lights and switches at the exact same time. The script requires a ton of upkeep because you have to be a wizard in Jinja and you need to understand zwave endpoints.
It would be great if there were 2 services that handled this for us.
zwave.multicast_on
zwave.multicast_off
In its first round, it would simply be an on off service that handles basic command class on/off values.
Zwave under the hood knows all the information required to make this work, so they should handle the binning and multicasting.
I envision the multicast on/off would bin all command classes together first, then bin endpoints second to minimize the number of mutlicast calls. We’d only need to support command class 38 (lights) and 37 (switches) first because this pretty much covers all on/off style actions in zwave.
The on service would accept a brightness value or nothing and properly pass it to each command class. 38 would get the brightness value translated to a range of 0 to 99, and 37 would be greater than 0 is True and 0 is False.
I currently have a script that handles this, however it heavily relies on labels and a config that matches under the hood values in zwave. It can be seen here