Skip to content

v3.4.0

Choose a tag to compare

@Pulpyyyy Pulpyyyy released this 26 Jul 10:08
· 6 commits to main since this release

external-attrs contract — the end of multi-shade attribute ping-pong

Completes the ÷2 double-write fix from v3.3.x and removes the display freeze
that happened while several shades were moving at once.

  • Extra attributes injected by a third-party component (cover-extender, for
    instance) now travel through a shared contract
    (hass.data['cover_external_attrs']) instead of a cross state rewrite.
    No more attribute round-trips multiplying state_changed events.
  • Dynamic reader handshake: the third-party component deposits its extras,
    the cover entity soft-merges them and rewrites itself once, on a dispatcher
    signal.
  • Works with the third-party component absent — the read is soft and has no
    impact.
  • Still one entity per shade.

Tests: the pytest suite passes, including the end-to-end run against a real
Home Assistant.