Adaptive Cover Pro ⛅ v2.28.2
ℹ Using release notes from: release_notes/v2.28.2.md
Highlights
🐛 Fixed an "Unexpected exception" when controlling a cover from the Lovelace card — installs that upgraded to v2.28.0 with climate control already configured could hit an error the first time they moved a cover after a restart. Manual control now works immediately, before the first update cycle.
Bug Fixes
- Climate threshold templates are now resolved before the first update cycle (#643, #644) — v2.28.0 migrated the climate temperature max/min thresholds to Jinja2 templates (#577), but the coordinator seeded its resolved-options cache with the raw, still-templated options at construction. Moving a cover through the card (the
set_positionpath) before the first_async_update_datacycle had run passed an unrendered template string where the climate pipeline expected a number, raising anUnexpected exceptionin the WebSocket service handler. The coordinator now renders the threshold templates once at construction, andasync_apply_user_positionreads_resolved_optionsinstead of the raw config entry, so manual control sees numeric thresholds from the very first command. Existing installs need no action — no data migration is required.
Testing
test_apply_user_position_renders_string_thresholds— asserts the apply-user position path renders templated string thresholds to numbers.test_apply_user_position_explicit_options_not_overridden_by_resolved— confirms caller-supplied explicit options still take precedence over the resolved cache.- Full suite at 4543 passing.
Compatibility
Requires Home Assistant 2026.3.0+.