-
Notifications
You must be signed in to change notification settings - Fork 14
Configuration Custom Position
Up to 4 custom position slots, each pairing a binary sensor with a fixed cover position. When the sensor is on, the cover moves to the configured position (priority 77 by default, overriding solar and climate but not manual or force override). Each slot has an independent configurable priority (1β99).
| Variable | Default | Range | Description |
|---|---|---|---|
| Custom Position Sensor 1β4 | None | Binary sensor entity. When on, triggers the custom position for that slot. |
|
| Custom Position 1β4 | 0 | 0β100 | Cover position (%) to move to when the sensor is active. |
| Custom Position Priority 1β4 | 77 | 1β99 | Pipeline evaluation priority for this slot. Higher = evaluated before lower-numbered handlers. Multiple slots are evaluated in descending priority order. |
| Minimum Mode 1β4 | Off | When enabled, the position acts as a minimum floor: the cover won't go below it, but higher positions from solar tracking or other handlers are still allowed through. When disabled (default), the cover is always set to exactly the configured position. Floor applies to ACP-issued commands only β see note below. | |
| Use My Preset 1β4 | Off | When enabled, sends the Somfy My position command instead of the numeric position value. Requires My Position Value to be set in Position settings. See My Position Support. | |
| Tilt for Slot 1β4 | Unset | 0β100 | Venetian covers only β ignored for other cover types. Tilt angle (%) to set when the slot's sensor is active. Leave unset to let the engine calculate tilt automatically. |
| Tilt Only 1β4 | Off | Venetian covers only. When enabled, the slot fixes only the slat angle (its Tilt value above) and does not claim the carriage position β solar tracking (or whatever wins the position pipeline) still decides how far the blind hangs. Overrides Minimum Mode and Use My Preset for that slot. See Tilt-only mode below. |
Minimum mode is enforced inside ACP's pipeline β it constrains the position ACP itself sends to the cover. It does not intercept direct cover.set_cover_position calls from a dashboard, script, or other automation. A direct call to cover.set_cover_position reaches the cover unchanged and also marks the cover as manually overridden, pausing ACP automation.
To enforce the active minimum-mode floor from automations and dashboards, call the integration's own service:
service: adaptive_cover_pro.set_position
target:
entity_id: cover.living_room_blind
data:
position: 30The service clamps the requested position up to the highest active minimum-mode floor before sending the command. If no slot is active, the call is a pass-through. Tilt is not affected. See Known Limitations.
Example use cases:
- A bedroom schedule sensor forces blinds closed (0%) for an afternoon nap
- A movie sensor moves living room blinds to 80% when the TV is on
- A Somfy cover uses its stored My preset when a specific scene is active
- Multiple sensors at different priorities let you stack logic (e.g. "watching TV" overrides general solar but a "morning coffee" sensor takes priority over both)
Venetian covers only. This mode has no effect on vertical blinds, awnings, or tilt-only covers β the option only appears for venetian (dual-axis) covers.
Normally a custom position slot claims both axes: when its sensor is on, it pins the carriage position and the slat tilt. Tilt-only mode decouples them. When the slot's sensor is active:
- Only the slat angle is fixed, to the slot's Tilt value.
- The carriage position is released β solar tracking (or whatever handler wins the position pipeline) continues to decide how far the blind hangs.
- Minimum Mode and Use My Preset are ignored for that slot (the config summary shows a warning when you combine them).
The canonical use case: open the slats fully on overcast days for maximum daylight with no glare, while still letting the sun-tracking algorithm position the blind. See the full recipe in Advanced Use Cases β Venetian Tilt-Only on Overcast Days.
A tilt-only slot resolves on the tilt axis independently of the position winner. Among multiple active tilt-only slots, the highest-priority one supplies the tilt. The slot's tilt is applied only when the winning position handler hasn't already set its own tilt β so a higher-priority handler that explicitly controls tilt keeps it. In the normal "solar wins position" case (solar leaves tilt for the engine), the tilt-only value flows straight through.
Venetian covers also have a global Tilt-only control method (set under the venetian/tilt settings) that closes the carriage and works the slats. When a per-slot tilt-only contribution is active, that global carriage-close is suppressed for the cycle so the position axis genuinely follows the sun, as intended. The two features don't fight.
A tilt-only slot won't appear as the position winner (that's solar, by design). Instead it shows up as a matched custom_position step on the tilt axis in sensor.{your_device}_decision_trace β look for the slot reporting the fixed slat angle with the position handed off to sun tracking.
Each slot takes a single binary sensor, but you can encode multi-condition logic into that sensor using a Template Binary Sensor. This lets you gate a custom position on combinations of state, sun position, and time of day without any automation.
Example: TV mode that adapts to sun position
Suppose you want the living room blind to:
- Close (0%) when the TV is on and sun is hitting the window directly
- Open fully (100%) when the TV is on but there's no direct sun, as long as it's still daytime
- Do nothing when the TV is on after sunset (let the sunset handler decide)
Create two template binary sensors, either via Developer Tools β Template or in configuration.yaml:
template:
- binary_sensor:
- name: "TV Glare Mode"
state: >
{{ is_state('binary_sensor.tv', 'on') and
is_state('binary_sensor.sun_in_window_living_room', 'on') }}
- name: "TV Open Blind Mode"
state: >
{{ is_state('binary_sensor.tv', 'on') and
is_state('binary_sensor.sun_in_window_living_room', 'off') and
not is_state('sun.sun', 'below_horizon') }}binary_sensor.sun_in_window_living_room is the sun-in-window sensor the integration creates for your cover; find it in the Entities list under your cover device.
Then configure two custom position slots in the integration's options:
| Slot | Sensor | Position | Priority |
|---|---|---|---|
| 1 | binary_sensor.tv_glare_mode |
0% | 85 |
| 2 | binary_sensor.tv_open_blind_mode |
100% | 78 |
The "TV on after sunset, do nothing" case is handled by the template: TV Open Blind Mode checks that the sun is above the horizon, so it stays off at night and the sunset handler runs instead.
Pairing with Force Override
If an awning (or any other device) should always take precedence and keep the blind open, use the Force Override slot rather than a custom position. Force Override runs at priority 100, above all custom positions, so it pre-empts everything else when its sensor is active.
π 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