Adaptive Cover Controller – Intelligent Sun Protection for Curtains, Blinds & Shutters

Adaptive Cover Controller - Adaptive Sun Protection for Curtains, Blinds & Shutters

Hi everyone,

Like many Home Assistant users, I wanted a way to automatically close my blinds and curtains to help keep the house cooler during the summer.

My first stop was the Home Assistant Community, where I found several excellent blueprints. They were comprehensive and feature rich, but I found myself looking for something with a slightly different philosophy. I wanted something that was straightforward to configure, easy to understand and simple to maintain.

The original goal was simple.

Only move a cover when the sun is actually shining through the window.

As I lived with the automation, it evolved through real-world use. Every feature was added because it solved a problem I actually encountered, not simply because it could. This post has been updated a few times now to reflect that, most recently for version 2.2.0.

The result is Adaptive Cover Controller.

Rather than being an all-or-nothing automation, the blueprint is modular. You can start with the essentials and enable additional validation as your installation grows.



Features

  • Sun azimuth and elevation based protection
  • Optional weather validation
  • Optional effective sky obstruction validation with hysteresis: accepts a plain cloud cover sensor, or a more sophisticated observation sensor like Lookout, described below
  • Optional occupancy validation
  • Three-tier protection (FULL / PARTIAL / NONE): tilt-capable covers can hold position and just adjust tilt as conditions change, instead of fully reopening every time a cloud passes overhead
  • Night lock
  • Scheduled morning opening
  • Automatic manual override detection, with a configurable timeout so control always comes back
  • Automatic recovery after Home Assistant restart
  • Periodic synchronisation
  • Supports curtains, blinds and shutters, including tilt

Going One Step Further

While developing Adaptive Cover Controller I discovered another challenge.

Weather services are excellent at forecasting regional conditions, but they don’t always describe what is happening above my own home.

One afternoon the forecast reported almost clear skies while a cloud passing directly overhead completely shaded my terrace and windows. A little later, the opposite happened. The forecast still reported heavy cloud cover while the sun was shining directly into the house.

For most automations that isn’t a problem. For automations that react to direct sunlight, it is.

That led me to a second project, now called Lookout (it started out under the working name “AI Sky Observer,” if you’ve seen it referenced that way before).

Instead of relying solely on regional weather forecasts, Lookout uses LLM Vision together with one or more outdoor cameras to observe the visible sky above your property.

It estimates cloud cover, determines whether the sun is visible and creates Home Assistant entities that can be used alongside traditional weather data including an entity you can plug straight into Adaptive Cover Controller’s Effective Sky Obstruction module.

The philosophy behind the project is simple.

AI observes. Home Assistant decides.

Adaptive Cover Controller decides when covers should move. Lookout helps explain why. Together they allow automations to respond to the actual conditions above your property rather than relying solely on regional weather forecasts.

Lookout Community Thread:

Lookout - Hyperlocal Sky and Camera Observation for Home Assistant Share your Projects!

GitHub:

github.com

GitHub - wgumaa/AI-Sky-Observer: AI-powered environmental sensors for Home…

AI-powered environmental sensors for Home Assistant using LLM Vision and security cameras.


What’s New in 2.2.0

Renamed Cloud Cover to Effective Sky Obstruction. A naming fix, not a behavior change - existing automations don’t need reconfiguring. The sensor input now explicitly accepts either a plain cloud-cover-percentage sensor, or something more capable like Lookout.

Three-tier protection: FULL, PARTIAL, NONE. The biggest behavioral change in this release. Blinds with tilt enabled used to fully reopen the moment a cloud passed overhead, then close again a few minutes later, which got old fast. Now they can stay down and just adjust their tilt angle continuously as obstruction changes, only fully opening once the sun actually leaves the window.

Manual override timeout. If you nudge a cover by hand, the automation now reliably hands control back after a configurable period (default 2 hours), rather than only resuming once the position happens to coincidentally match. Set it to 0 to keep the old behavior.

A few real bugs fixed, the kind you only find from actually living with it: manual override occasionally clearing itself within seconds of activating, a couple of validation toggles silently producing the wrong result when disabled, and a Home Assistant restart occasionally being mistaken for someone manually touching a cover.


Documentation

The repository includes:

  • Installation guide
  • Configuration walkthroughs
  • Blueprint screenshots
  • Decision flow diagrams
  • Practical setup recommendations

The goal has always been to make the blueprint easy to understand, easy to configure and easy to maintain.


Get Started

You can import the blueprint directly into Home Assistant using the badge below.

Open your Home Assistant instance and import this blueprint.

GitHub:

github.com

GitHub - wgumaa/Adaptive-Cover-Controller: An adaptive Home Assistant blueprint for…

An adaptive Home Assistant blueprint for intelligent sun protection of curtains, blinds and shutters using sun position, schedules, occupancy and optional weather conditions.


This project is still actively evolving, so I’d genuinely appreciate any feedback, suggestions or ideas. If you’re using it, especially with tilt-capable blinds, I’d love to hear how the new protection levels are working out for you.


A note on development

I also want to be transparent about how this project was built.

I’m not a software developer. I’m simply a Home Assistant enthusiast who enjoys solving problems around my home and building automations that make everyday life a little smarter.

Like many people today, I used AI throughout the development process as an engineering tool. It helped me brainstorm ideas, review code, improve documentation and iterate more quickly.

The ideas behind the project, the architecture, implementation, testing and final design decisions are my own. Every feature has been built, tested and refined on my own Home Assistant installation before becoming part of the project.

1 Like

Until a few months ago, there were hardly any automations for blinds or shutters in Home Assistant.
I think it’s really great that there are more and more options available. And not just blueprints, but proper integrations as well.

This variety makes it easier for end users to make a choice.

Thank you very much for your blueprint.

1 Like

Import fails with an unknown error:

The Blueprint address is removed following the attempted import.

@Orange-GT3 Thanks for letting me know. I will test it and get back to you shortly.

@Orange-GT3 thanks once again. It was an indentation in my YAML that caused the problem. Can you test and let me know if it imports?