Replies: 3 comments
|
Yeah, this is doable today. You're just reaching for the wrong tool: custom position with an exact target is the one that stops tracking. Two other options handle this without touching it. The simplest is Minimum Position, under Options → Position → Position Limits. It's 0-99, defaults to 0, and it clamps every position the integration calculates on its own: solar tracking, the default/rest position, climate mode, cloud suppression, glare, motion timeout. Set it to whatever percentage covers your 10-20cm gap and sun tracking keeps running exactly as before. It just never asks the motor to go below that floor. One catch. Minimum Position doesn't touch anything sent as an explicit target. Sunset Position, a Custom Position slot in exact mode, the Weather Override position, and My/hardware presets all go out as configured, unclamped. If you want the floor to hold at every hour, those need to sit at or above it too. And if Sunset Position is left blank it falls back to Default Position, which is also sent unclamped at night. There's a second field on the same screen, Min Position During Sun Tracking. It's a separate floor that only applies while the sun is within the acceptance angle, useful if you want the blind to skip the bottom of travel while tracking but still close fully at sunset. Leave it blank and Minimum Position covers both cases. Leave "Apply min only during sun tracking" off too (the default), so the floor applies everywhere and not just to the solar handler. If you want the floor to kick in only while the window's open, here's the part I should correct. A Custom Position slot with Minimum Mode on does not stop sun tracking. It's a boundary, not a replacement. With Minimum Mode on, that handler defers to whatever the pipeline would have picked anyway, normally solar, then composes your value on top as a floor, so tracking can still raise the blind above it but can't push below it. A slot without Minimum Mode is the one that pins an exact position and throws away the tracking result. That's the behavior you ran into. So the recipe is one slot: trigger sensor set to your window contact, Custom Position set to the floor value, Minimum Mode on. Tracking runs untouched with the window closed and gets a floor the moment it opens. Since this is about protecting hardware, two priority details matter. At the default of 77 that slot won't override a manually-positioned cover; a manual command outranks it. If you want the floor to pull the blind back after a manual move too, push the slot above Manual Override's 80, say 82. And a command that bypasses the integration entirely, like a wall remote or calling cover.set_cover_position straight on the underlying cover entity, can't be intercepted by anything, ACP included. The motor's already moved before ACP sees it. Driving the cover through ACP's proxy entity or the adaptive_cover_pro.set_position service is what keeps it inside the clamp. There's a real gap too. A custom slot below priority 100 only fires inside your configured start/end window. If your window could be open overnight and the floor needs to hold then, that's the hole. Priority 100 gets around it but drags in full safety semantics, ignoring manual override, ignoring auto-control, firing at any hour, which is more than you probably want here. I've got a lighter "active period" option for constraints tracked in issue #943. Given what you described, constant draft risk rather than something tied to the window state, I'd start with plain Minimum Position. It's the least fiddly and does the job. Reach for the custom-position recipe only if you actually want full range of motion back once the window's shut. Last thing. Does your roller blind report 0% as fully down? Standard behavior in ACP is 0 = closed/down, 100 = open/up. If yours reports backwards you're probably relying on Inverse State, which flips what the number means and is worth knowing before you pick a floor percentage. For details, see the Position Limits wiki page. |
|
I wrote this up properly since your question surfaced a real gap: the conditional floor recipe existed for venetian tilt and for a door held fully open, but nobody had documented it for position on a plain roller blind. https://github.com/jrhubott/adaptive-cover-pro/wiki/Advanced-Use-Cases-Window-Open-Position-Floor Two things on that page aren't in my first reply and are the fiddly bits in practice: converting your 10-20cm gap into a position percentage (it's a percentage of total travel, worth double-checking if your cover isn't linear), and reading the decision trace to confirm the floor's actually doing something: you want solar to win, with a clamp step crediting the custom position slot, not custom_position winning outright. Let me know how the roller behaves once it's set, or if the trace doesn't look the way I described. |
|
This seems to work very well. I know i have set the same priority to both custom positions. still it seems like "[77] 🎯 Custom #1: if binary_sensor.bedroom_window is on → 15% (as minimum)" takes priority over "[77] 🎯 Custom #2: if input_boolean.night_mode is on → 0% I will change custom #1 to priority 82 as you suggest for hardware safety. The blinds are configured: fully down as 0% and fully up as 100% This is what I ended up with: Vertical Blind controlling cover.bedroom_window How It Decides (first matching rule wins) Position Limits Proxy cover: disabled Decision Priority (highest wins, ✅ active ❌ not configured) |
Uh oh!
There was an error while loading. Please reload this page.
First of all, amazing project!
Im using vertical roller blind inside the sill of my windows. There's a risk that the roller blinds get pulled towards the window from draft through the apartment. This could potentially cause the roller blind to get stuck or require excessive force for the motor when moved.
For my window type and roller blinds it would be enough to limit the lowest position by 10-20cm for to let the draft run through the apartment.
I have looked through the settings but cant find if there is any way to change the range of motion during sun tracking.
Closest would be custom position but that would stop the sun tracking.
Is there a way to configure APC for this behaviour?
//Flog
All reactions