(deprecated) Extensive roller shutter control including shading (brightness, sun position, temperature, forecast)

I would also love if you could add the suggestions by @nicknol. I also have the use cases of roller shutters that should not completely close (in my case kids that don’t want it too dark or bath room which shouldn’t be totally black at night).

If you don’t want to be involved here too much or feel like this is too much of a burden I could also put it in my github somewhere so others could collaborate (with proper attribution of course).

As you can see in the changelog we already implemented this enhancement :slight_smile:


My use case is rather simple - I want to automate driving up and down of my roller shutters just on sunset and sunrise while respecting time_up_early, time_up_early_workdays, etc. I don’t do any shading based on e.g. brightness / azimuth etc. stuff. Also used to do this with ASC on FHEM :wink:

Am I correct that simply driving up / down based on sunrise/sunset is not implemented? If it is implemented, could you point me on how to configure it?

You are right, it’s not implemented.
Feel free to take this blueprint as a template and adjust to your needs.

I forked this blueprint a long time ago because I also wanted to incorporate a few individual requests. Eimeel and I had a good and long conversation here.

My fork is mostly the logic of him. But of course I’m in the fortunate situation of not having to pay attention to backwards compatibility. So I renamed all variables. I also installed the sun control.

But there is a very important note: Since I have adopted a lot of logic, I have some procedures that I have not checked in detail myself. I had a lot of naive ideas. But Eimeel was always able to convince me that his approach make sense. He is much deeper into the matter. And I’m just playing around a little.

Currently I haven’t published my fork yet. But I can upload it tomorrow.

@Eimeel i have one conceptional question in setting up the automation.
coming from iobroker and using the adapter shuttercontrol i was used to work with groups (eg “Wohnbereich”, “Schlafbereich”…) which included several shutters.

Within each “group” i had the option to set auto_down auto_up sunprotect for each shutter which gave a lot flexibility.

I am now thinking how to set this up with your blueprint.


  • 1 automation for each shutter (lot of administration work)
  • 1 automation for each shutter-goup (could only set auto_down auto_up sunprotect for whole group?)
  • other apporaches?

how do you use it for yourself?

BR, Johnny

Well, our house has 21 windows and I created 1 automation for every shutter :slight_smile: It is not that much work as you can copy an automation and adjust for every shutter.

But for sure you can create cover groups within Home Assistant and use 1 automation for every cover group.
Important: with my blueprint a cover group will be handled as if the group is one shutter. The group will not be split in several different shutters. Meaning if you e.g. create a cover group of two shutters and one shutter is at position 0 and the other one at position 100, the group will have position 50. If you define closing position as 0 (=default) and opening position (=100) nothing would happen here.

Consider me interested :slight_smile:

I still think a common project on e.g. github would make sense, I could also contribute a little. Maybe together we can develop a good ASC alternative for HomeAssistant :wink:

1 Like

I strongly suggest to start this using python script or creating an integration. An all-you-wish blueprint for shutter control is hell to debug.

But may I ask to discuss all this via PN or in another thread? Cause otherwise it will confuse people :slight_smile:

1 Like

I have a simple question:
I want to execute the blueprint, whcih is working fine, and after executing the blueprint send a notification to my phone.
How can I do that? I was thinking about listening to the event ‘automation_triggered’ and see if the blueprint got started. But how do I know when the blueprint has been executed? I want to start an automation when the blueprint has executed and send a notification.
How is that possible?

Thanks a lot !

i would be interested in your blueprint, especially because of the sun control. Have you published it yet?

There appears to be a link to it in their post…

1 Like

@Eimeel i use the automation with groups which have multiple covers. if it closes/opens the shutters at “time up late” or “time up early” etc., all shutters are controlled at the same time. I want to send the open/close command for every shutter with a bit delay.


          - repeat:
            for_each: "{{ expand(!input blind)|map(attribute='entity_id')|list }}"
              - delay: 00:00:{{ (range(1, 3)|random|int) }}
              - service: cover.open_cover
                data: {}
                  entity_id: "{{ repeat.item }}"
              - stop: Stop the automation

is it possible to include this feature?

If you create a full CR, yes, I can include it :slight_smile:
But this means not only the expanding part but also checking if there is a group or not. Don’t know if it’s easier to add a checkbox for this (e.g. “entity is a cover group”) or check it with code (which should be less error-prone).

What exactly do you want to achive? Just getting a notification “automation finished” or some more details?

But as the blueprint has some “dead ends” (aka parts which are just stopping the automation without any moving of the shutters) I guess just creating a notification after the automation finished won’t help you really.

Maybe it’s better for you to fork the blueprint and add “service: notify.notify” where ever you need.

ok. do you know how i can check if the entity is a group? perhaps with the attribute entity id greater than 1?

Sounds like a good idea. Currently I have no better approach. So let’s try.

i don´t know where the failure is. The modified automation will not load with the following sequence at line 879:

          - if:
            - condition: template
              value_template: '{{expand(blind)|map(attribute=''entity_id'')|list|count > 1 }}'
              - repeat:
                for_each: '{{ expand(blind)|map(attribute=''entity_id'')|list }}'
                  - delay: 00:00:{{ (range(1, 3)|random|int) }}
                  - service: cover.open_cover
                    data: {}
                      entity_id: "{{ repeat.item }}"
              - delay: 00:00:{{ (range(1, 3)|random|int) }}
              - service: cover.open_cover
                data: {}
                  entity_id: blind
          - stop: Stop the automation

Can you try

 value_template: "{{expand(blind)|map(attribute='entity_id')|list|count > 1 }}"


                for_each: "{{ expand(blind)|map(attribute='entity_id')|list }}"

the result is:

Message malformed: expected a dictionary for dictionary value @ data['action'][1]['choose'][0]['sequence'][0]['choose'][1]['sequence'][0]['then'][0]['repeat']