Adaptive Cover Pro ⛅ v2.25.0
ℹ Using release notes from: release_notes/v2.25.0.md
Two new features and a venetian drift fix — position matching is now configurable, the forecast covers a full calendar day, and venetian tilt no longer waits minutes to correct drift.
This release ships a configurable position-match tolerance so covers that report slightly off the commanded value stop generating redundant commands; a rebuilt full-day position forecast aligned to 00:00–24:00 so the companion Lovelace card and any other forecast consumer always receive a complete, consistently-anchored day of data; and a venetian drift correction that retries immediately rather than waiting for the next coordinator cycle.
🚀 Features
Configurable position match tolerance (#507, #512)
Previously the integration used a fixed threshold to decide whether a cover's reported position was close enough to the target to be considered "matched." Covers that consistently report a value slightly off the commanded position would trigger redundant re-sends and position-verification churn on every cycle. A new CONF_POSITION_TOLERANCE option — surfaced in both the config flow and options menu, range governed by _RANGE_POSITION_TOLERANCE, defaulting to POSITION_TOLERANCE_PERCENT — lets users dial in the tolerance for their hardware. The value is plumbed through RuntimeConfig.from_options and TrackingSlice.position_tolerance, and applied at command time via CoverCommandService.update_position_tolerance.
Full-day position forecast aligned to midnight (#510, #511)
The position-forecast sensor previously started its sample window at the current time, so consumers would receive a partial, shifting day of data depending on when the sensor was first evaluated. Forecast samples now span a full calendar day from 00:00 to 24:00 on every evaluation, giving the companion Lovelace card and any other forecast consumer a complete, consistently-aligned picture regardless of when the data is read.
🐛 Fixes
Venetian tilt drift now retries immediately instead of waiting for the next coordinator cycle (#500, #504)
When DualAxisSequencer detected that the reported tilt had drifted from the commanded value after a move, it cleared the recorded tilt target so the next coordinator cycle would re-issue the command. In practice the next cycle was gated by delta_position and other timing guards, so the cover could sit at the wrong tilt for minutes. _verify_and_record_tilt now schedules a single re-send through _send_tilt_command after a VENETIAN_DRIFT_RETRY_DELAY_SECONDS (2.0 s) delay, reusing every existing gate. Recursion is bounded by _retry_depth; a tilt_command_drift_retry diagnostic event is recorded at each retry.
📖 Documentation
README now showcases the companion Lovelace card with new images and an animation
The README has been updated with new screenshots and an animated preview of the companion Lovelace card, giving HACS browsers and first-time visitors a clearer picture of what the card looks like in use.
Compatibility
- Home Assistant 2026.3.0+