-
Notifications
You must be signed in to change notification settings - Fork 14
Proxy Cover Entity
Most cover cards on dashboards (the default HA Cover card, mushroom-cover-card, and similar) call cover.set_cover_position directly on whatever entity the card targets. If you point them at the physical cover, the slider, open button, and close button bypass ACP's min-mode floors entirely. The proxy cover entity fixes that without you having to write a template cover or a custom card.
When the Expose Proxy Cover Entity toggle is on, ACP creates one additional cover entity per source cover. Point your dashboard at the proxy instead of the source; ACP intercepts the dashboard commands, runs them through the same floor-clamp logic the adaptive_cover_pro.set_position service uses, and forwards the clamped position to the source cover.
Turn on Expose Proxy Cover Entity in the Covers & Device step of the create flow, or any time afterwards in integration Options. It's off by default β without it, dashboards talk to the source cover directly and bypass ACP's floors.
ACP creates one proxy cover per source cover on the next reload.
For new instances created against a cover that has an attached HA device, the entry Title defaults to the device name verbatim (e.g. a Zigbee device "Patio Stairs Shade" produces a title of Patio Stairs Shade), so the resulting proxy entity is cover.patio_stairs_shade_managed with friendly name Patio Stairs Shade Managed. For instances created without an attached device, the title gets the cover-type prefix and the word "Adaptive" (e.g. Vertical Adaptive Living Room Blind) β the examples in the table below cover both cases.
| Property | Value |
|---|---|
| Entity ID |
cover.{title_slug}_managed (single source) or cover.{title_slug}_managed_{source} (multi-source instances) |
| Friendly name |
{Title} Managed or {Title} Managed ({source label})
|
| State | Mirrors the source cover (open, opening, closing, closed, etc.) |
| Attributes | Pass-through from the source (current_position, current_tilt_position, supported features) |
unique_id |
{entry_id}_proxy_{slugified_source_entity_id} β stable across renames |
The proxy advertises only the features its source advertises, so a position-only cover gets a proxy that exposes position, an open/close-only cover gets a proxy without a position slider, and a tilt-capable cover gets a proxy with both axes.
Each command coming into the proxy gets routed through Coordinator.async_apply_user_position with a labelled trigger. The trigger shows up on the last_cover_action diagnostic sensor so you can tell at a glance what moved the cover.
| Service called on the proxy | Routed through floor clamp | Trigger label |
|---|---|---|
cover.set_cover_position |
β | proxy_managed |
cover.open_cover |
β (treated as position 100) | proxy_open |
cover.close_cover |
β (treated as position 0) | proxy_close |
cover.set_cover_tilt_position (tilt-capable covers only)
|
β | proxy_tilt |
cover.stop_cover |
β (forwards unclamped to the source) | β |
The clamp respects:
- Active force-override and weather-override handlers β those still win, exactly as if you'd called the
adaptive_cover_pro.set_positionservice. - The highest active custom-position min-mode floor across all slots.
- The configured Minimum Position when Apply Min only during sun tracking is off. See Position Limits.
cover.stop_cover deliberately bypasses the clamp so a panic-stop from the dashboard always lands.
Use the proxy whenever a dashboard, voice command, or third-party automation might otherwise call cover.set_cover_position directly on the physical cover and bypass your floors. Common cases:
- The default Home Assistant cover card.
-
custom:mushroom-cover-cardand similar cards that hard-code the service name. - Voice assistants (Google, Alexa) that emit
cover.set_cover_positionagainst the entity you exposed. - Quick-action buttons on a tablet dashboard.
If your dashboard already calls adaptive_cover_pro.set_position via a custom button or script, the proxy is redundant for that surface β the service path and the proxy path share the same helper.
Stopping false manual overrides. If you're getting spurious manual_override events from external sources (slow Zigbee shades, stale position reports, other automations, physical/RF remotes), pair the proxy with the "Only engage manual override from Adaptive Cover Pro commands" option (Automation β Manual Override) and drive the cover only through the proxy. ACP then ignores every non-proxy state change while still honouring your proxy moves. See Troubleshooting β workaround.
The proxy shipped in v2.21.2 with an _slider suffix; in the next release the suffix is _managed because the proxy intercepts open and close too, not only slider moves. The change is purely cosmetic at the integration level β ACP picks up the new entity name on new opt-ins automatically β but Home Assistant never auto-renames an existing entity_id after first registration.
If you turned the proxy on under v2.21.2 and you want the cleaner _managed entity ID, go to Settings β Devices & Services β Entities, find the entity ending in _slider, and rename it manually. The friendly name updates on its own. The underlying unique_id was always {entry_id}_proxy_{slug}, so the registry row survives untouched and no migration is needed.
-
Runtime Configuration Services β
adaptive_cover_pro.set_positionis the scripted equivalent of what the proxy does for dashboards. - Position β where Min Position and the "Apply Min only during sun tracking" toggle live.
- Custom Position β min-mode floors on a per-slot basis stack with the global min in the same clamp.
π Home Β· β¨ Features Β· π° What's New
π Getting Started
- Installation
- Migrating from Custom Repository
- Migrating from Adaptive Cover
- First-Time Setup
- Cover Types
π§ Core Concepts
π Cover Types
βοΈ Configuration
- Sun Tracking
- Position
- Glare Zones
- Automation
- Custom Position
- Force Override
- Weather Safety
- Climate
- Blindspot
- Summary Screen
- Debug & Diagnostics
π Entities & Services
- Entities
- Proxy Cover Entity
- Position Verification
- My Position Support (Somfy RTS)
- Runtime Configuration Services
π οΈ Operations
π§ Advanced Use Cases
- Dynamic Temperature Thresholds
- Dynamic Tracking Window
- Bedroom Sleep Mode
- Handling Variable Cloud Cover
- Venetian Tilt-Only on Overcast Days
π¨ Dashboard
π§ͺ Testing & Simulation
π Reference
π©βπ» For Developers