Resync Blinds position if physical switch was used

I have a Technisat z-wave switch for blinds which seem unable to report its position.

This leads to the fact that Home Assistant is out of sync each time someone uses the switch manually – home assistant has then no idea of the new position and will assume the blinds is closed for example, event thought the user stopped the closing halfway through.

Hence, each time HA wants to change the position, it should check if a user has made a manual “close” or “open” action and if yes, completely close or completely open the blinds and only then set to the new blinds position.

it’s a poor workaround but I didn’t find anything so far – apart from swapping the technisat switches for a shelly plus 2PM with a dumb switch.

So, my plan is:

  • Create a global variable “manually_changed”
  • set “manually_changed” to “true” each time a “close” or “open” event is seen.
  • If HA needs to change position, check manually_change value:
    • if true, completely close or completely open the blind first, then set position.
    • if false, then set position.

Where I struggle is how to “catch” the HA command trying to change the position of the blinds? I have integrated with HomeKit and hence end users could change the position using the Apple device for example: how to I “catch” this to first completely open the blinds (wait 5s for completion), and then set position, for example?

Ideal would be the ability to set position to “unknown” somehow and have HA bring the blind to a known position first before setting a new position. I guess that’s a feature request.