Skip to content

Adaptive Cover Pro ⛅ v2.28.2

Choose a tag to compare

@jrhubott jrhubott released this 21 Jun 23:27
· 96 commits to main since this release

ℹ 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_position path) before the first _async_update_data cycle had run passed an unrendered template string where the climate pipeline expected a number, raising an Unexpected exception in the WebSocket service handler. The coordinator now renders the threshold templates once at construction, and async_apply_user_position reads _resolved_options instead 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+.