How to get "opening" and "closing" states for a cover (Z-Wave JS Bali blinds)

I have a dozen of these Z Wave blinds, which work great, except that when I operate them, there is no feedback until they arrive at their new position.

i.e. if I close the blinds, I see no state change for a minute or so while the blind is in motion, then the state suddenly changes to “closed”. If I’m not in the room, I am left guessing as to whether anything is happening or not. The open percentage also only opens at the end of motion.

Is it a device limitation that the opening and closing states are not exposed?

Is my only hope to write a proxy for these?

  • I imagine, I’d have to write a template cover that delegates most of the state and actions to the underlying cover entity, except that it outputs it’s best “guess” of the opening and closing states
  • For the opening and closing states, I could use a dropdown helper to keep track of the state. Set it to “opening” when receiving the open_cover action (and similar for “closing”) and also update it to match the state of the underlying entity when it changes.

I’d like some feedback on whether this is the right direction.

Would I have to create a copy of this template cover, helper and automation for each of my blinds, or can I use a blueprint somehow?

What would be a good way to organize this configuration? Is this a use case for packages (one per blind?).