Advanced Cover — bounded positioning + simulated positioning for any cover
Home Assistant’s cover entity is great, but two situations aren’t well handled out of the box:
- You don’t want a cover to use its full 0–100% travel. A blind that shouldn’t ever fully close, an awning that shouldn’t fully retract into its housing — right now the only options are “trust every automation and every person to never send the wrong number” or build custom scripting around it.
- Your cover doesn’t report a position at all — lots of cheap RF/IR shades only expose open/close/stop, so you lose the position slider, and with it any automation that wants “go to 40%” instead of “fully open/closed”.
Advanced Cover is a small integration that wraps any existing cover entity and gives you a second, “advanced” cover entity that solves both:
Bounded positioning — set a min_value/max_valuewindow (e.g. 10–90%), and every position command, plus open/close, gets clamped into that range before it’s forwarded to the real cover. The 100% you send is really “90%” on the physical device.
Proactive bounds enforcement (optional) — if the wrapped cover ends up outside those bounds when they change, it moves the cover to the new bound.
Time-based simulated positioning — for covers that only support open/close/stop, give it your measured open and close travel times and Advanced Cover will simulate an absolute position, giving you a normal position slider and “set position to X%” service calls even though the underlying device has no idea what a position is.
Runtime-adjustable bounds — three entity services (set_min_value,set_max_value,set_enforce_bounds) let automations tweak the window on the fly (e.g. loosen the bounds for a “full clean” mode) without reloading the integration.
Device grouping — each Advanced Cover gets its own device linked to the wrapped entity’s device, and inherits its area, so it stays tidy in the UI.
Optional wrapped-entity hiding — hide the raw wrapped cover from dashboards/voice assistants while keeping it fully usable by automations.
Everything is configured entirely through the UI (config flow + options flow) — no YAML.
Screenshots
Add the integration and pick the cover you want to wrap:
Configure the wrapped cover and its bounds:
…and optional behavior like bounds enforcement, hiding the wrapped entity, or simulated positioning:
Installation
Via HACS (custom repository, not yet in the default store):
Or manually add https://github.com/RomRider/ha-advanced-covers as a custom repository in HACS (category: Integration), or copy custom_components/advanced_cover into your config/custom_components/ folder directly.
Links
- GitHub: GitHub - RomRider/ha-advanced-covers: Virtually timed and/or bound covers for Home Assistant · GitHub
- Issues / feature requests: Issues · RomRider/ha-advanced-covers · GitHub
Would love feedback, bug reports, and PRs — this is early days for the project, so if you wrap a cover and something behaves unexpectedly, please open an issue with your cover’s supported features and what you saw.


