Skip to content
Jason Rhubottom edited this page Apr 19, 2026 · 11 revisions

Adaptive Cover Pro

This Custom-Integration provides sensors for vertical and horizontal blinds based on the sun's position by calculating the position to filter out direct sunlight.

This integration builds upon the template sensor from this forum post Automatic Blinds

Features

Core sun tracking

  • Individual service devices for vertical, horizontal, and tilted covers
  • Two calculation modes β€” Basic and Climate β€” both wrapped by a shared override pipeline
  • Binary sensor tracking when the sun is in front of the window
  • start and end time sensors
  • Smart device naming β€” suggests a device name based on the selected cover entity

Cover support

  • Position-capable and open/close-only covers, detected automatically at runtime
    • Configurable threshold for open/close decision (default 50%)
  • Tilt-only covers (Z-Wave, some KNX) β€” entities that expose only SET_TILT_POSITION are routed through set_cover_tilt_position automatically, regardless of the configured cover type (v2.18.0)
  • Inverse state support for covers that report position with reversed semantics

Safety & overrides

  • Force Override β€” binary sensors (rain, wind, window-open, fire-alarm, etc.) move covers to a configured safe position at top priority (100)
    • Default position 0% (fully retracted) or customizable (e.g. 100% for security sensors)
    • Minimum position mode β€” treat the override position as a floor rather than a fixed target
    • Manual control still works during force override
  • Weather safety (priority 90) β€” wind speed, rain rate, or severe-weather binary sensors trigger retraction with a configurable recovery timeout
  • Manual override (priority 80) β€” automatic detection of physical/app/voice cover moves pauses automatic control; persists across HA reboots and integration reloads (v2.17.3)
  • Motion-based automatic control (priority 75) β€” OR logic across any number of occupancy sensors; when none have detected motion for the configured timeout (30–3600 s, default 300 s), covers return to default. Leave the sensor list empty to disable.

Climate & light

  • Climate mode β€” temperature-aware winter / summer / intermediate strategy with optional presence, weather, lux, and irradiance inputs; a dedicated switch toggles it on/off and a Climate Status sensor reports the current strategy
  • Glare zones (vertical blinds only, priority 45) β€” protect named floor areas from direct sunlight; each zone has distance, width, and priority; now fires correctly when climate mode is active with presence (v2.18.0, #231)
  • Cloud suppression (priority 60) β€” lux, irradiance, cloud coverage, or a weather entity's state can suppress solar tracking and return the cover to default; sensor changes trigger immediate re-evaluation (v2.17.5) rather than waiting for the next 5-minute refresh
  • Blind spot β€” angular range within the field of view where a tree, pillar, or neighbouring building blocks direct sun

Adaptive control

  • Master Integration Enabled kill switch + per-instance Automatic Control toggle
  • Optional return to default position when automatic control is disabled
  • Start / end time window (fixed clock times or driven by sensors / input_datetime)
  • Minimum position change and minimum interval between moves
  • Custom positions β€” up to 4 sensor-triggered positions, each with its own priority (1–99, default 77)
  • Automatic Position Verification β€” every minute, confirms covers reached the commanded position; up to 3 retries before backing off; respects manual override, Automatic Control, Integration Enabled, and the time window (see Position Verification)

Runtime configuration (v2.18.0)

  • 15 runtime configuration services β€” adaptive_cover_pro.set_position_limits, set_sunset_sunrise, set_automation_timing, set_manual_override, set_force_override, set_custom_position, set_motion, set_light_cloud, set_climate, set_weather_safety, set_sun_tracking, set_blind_spot, set_interpolation, set_geometry, and the set_option escape hatch
  • Change any setting from automations, scripts, or templates without opening the Options UI; all changes persist across restarts and trigger a full integration reload
  • See Runtime Configuration Services for the full reference

Diagnostics & troubleshooting

  • Always-on diagnostic sensors (diagnostic entity category, no setup required) β€” 10 always-created plus up to 3 conditional:
    • Sun Position β€” azimuth, elevation, gamma, FOV bounds, in_fov
    • Control Status β€” why covers are/aren't moving, delta thresholds, time since last action
    • Decision Trace β€” full pipeline evaluation showing which handler won and why; position_explanation on the Target Position sensor shows the complete chain (e.g. "Sun tracking (45%) β†’ Climate: Winter Heating β†’ 100%")
    • Last Skipped Action β€” most recent suppressed move with reason, position delta, and thresholds
    • Last Cover Action β€” most recent cover command with full details
    • Manual Override End Time β€” when automatic control will resume; persists across reboots (v2.17.3)
    • Position Verification β€” last check time and retry count per cover
    • Motion Status β€” motion control state; shows not_configured when no motion sensors are set up
    • Climate Status (when climate mode is configured) β€” active temperature and climate strategy
    • Force Override Triggers (when force override sensors are configured) β€” count and per-sensor status
    • Position Mismatch binary sensor (disabled by default) β€” true when any cover is outside the position tolerance
  • Debug Mode β€” toggle INFO-level category logs (manual override, reconciliation, pipeline, motion) + a rolling ring buffer included in diagnostics downloads; no configuration.yaml edits required

Enhanced geometric accuracy (automatic)

  • Angle-dependent safety margins for better sun blocking at extreme angles
  • Automatic edge case handling for very low (<2Β°) and very high (>88Β°) sun elevations
  • Smooth transitions across all sun angles using smoothstep interpolation
  • Optional Window Depth parameter for advanced precision with deep reveals
  • Optional Sill Height for raised windows
  • Backward-compatible β€” existing installations benefit immediately; window_depth=0 and sill_height=0 are identical to earlier versions

Configuration Summary (built-in review screen)

  • Shown as the final step of initial setup and available any time from the options menu
  • Organized into four sections, only rendering what is actually configured:
    • Your Cover β€” what is being controlled and the physical window dimensions
    • How It Decides β€” narrative explanation of every active rule in priority order
    • Position Limits β€” default position, min/max range, delta thresholds, and flags (inverse state, interpolation) on one line
    • Decision Priority β€” compact one-line reference of all 10 pipeline handlers with βœ… / ❌ status
  • Cover Warnings (v2.17.5) β€” flags open/close-only covers, assumed_state, mixed capabilities across entities, and configured position limits that will never apply; hidden when nothing is flagged

Clone this wiki locally