Repository navigation
v3.4.0
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 multiplyingstate_changedevents. - 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.