Adaptive Cover Pro ⛅ v2.30.0-beta.3
Pre-releaseℹ Using release notes from: release_notes/v2.30.0-beta.3.md
Highlights
2.30.0-beta.3 builds on beta.2's diagnostic and venetian additions with five new user-facing capabilities: a roof/skylight window cover type (closing #212), building profiles for shared building-level sensors, three blind-spot slots with per-slot elevation-mode filtering, ten custom-position slots (up from five), and endpoint-aware open/close. A venetian motor back-rotation edge case — where slats drag shut during a close command — is also fixed. The config-entry schema bumps v3.4→v3.5 in a no-op migration; upgrading changes nothing without reconfiguration.
To install, enable "Show beta versions" in HACS. Feedback is especially welcome on: roof windows in pitched installations, building profile setup and sensor-propagation latency, blind-spot elevation modes (BLIND_SPOT_ELEV_MODE_BELOW vs. BLIND_SPOT_ELEV_MODE_ABOVE), and endpoint open/close on covers that support set_position.
Added
-
Roof/skylight window cover type (#212, #696): New cover type
"cover_roof_window"with pitch-aware sun geometry. ConfigureCONF_ROOF_PITCHandCONF_ROOF_HEIGHT_ABOVEto match the physical installation;RoofSunGeometryhandles the tilted-plane math,RoofWindowCoverdrives position calculation, andRoofWindowPolicyprovides the policy layer. The type is registered inALL_COVER_TYPESalongside the existing blind/awning/tilt types. Closes the oldest open feature request. -
Building profile (#693, #700, #706): A new virtual entry type — created via its own config-flow steps (
async_step_create_building_profile(),async_step_building_profile_sensors()) — that holds shared building-level weather and climate sensors without controlling any covers. Linked covers receive live sensor propagation via_async_profile_propagate();_copy_profile_to_cover()applies profile values and_covers_linked_to()tracks which entries reference a given profile.BuildingProfilePolicyandSensorSourcedefine the data model. On deletion,async_remove_entry()cleans the dangling profile link from all linked covers. The standalone weather-retraction toggle was removed in the same pass (#706); the migration handles existing data transparently. -
Multiple blind-spot slots with elevation modes (#701, #702, #708): Blind-spot configuration expands from one slot to three (
BLIND_SPOT_SLOTS). Each slot carries left/right azimuth bounds plus an elevation threshold and an elevation mode:BLIND_SPOT_ELEV_MODE_BELOWblocks low-sun intrusion,BLIND_SPOT_ELEV_MODE_ABOVEblocks high-sun intrusion.BlindSpotis a frozen dataclass;_make_blind_spot()and_extra_blind_spots_from()build the slot list from config,_blind_spot_slot_keys()drives options-flow validation,_blind_spot_step_errors()validates bounds, and_sun_in_blind_spot()does the single containment check for both modes. Slot 1 reuses the legacy unsuffixed keys so existing configurations carry forward unchanged; slots 2 and 3 are optional and suffixed. Diagnostics loop over all active slots dynamically. -
Ten custom-position slots (#703, #704):
CUSTOM_POSITION_SLOT_NUMBERSnow covers slots 1–10, up from 1–5. Slots 6–10 behave identically to existing slots and respect the same priority range (1–100, default 77). -
Endpoint-aware open/close (#697, #699): When a cover supports
set_position, open and close commands now drive the carriage to its physical endpoints rather than issuing only a generic service call.apply_user_position_endpoint_open()andapply_user_position_endpoint_close()handle the axis-aware dispatch;_POSITION_AXIS_SERVICESmaps each axis to its service.
Fixed
- Venetian tilt back-rotated after close (#694): On hardware where the motor drags the slats shut during a close, the integration previously left the verified-tilt flag set and never re-asserted the commanded angle.
_tilt_targets_verified.discard()is now called after any position move so the sequencer re-reads actual tilt on the next update and re-asserts the correct angle. Thanks to @vaind for reporting and fixing the edge case.
Testing
5114 tests passing.
Compatibility
Requires Home Assistant 2026.3.0+. The companion Lovelace card (jrhubott/adaptive-cover-pro-card) is a separate repo with its own release cycle.