☀️ Cover Control Automation (CCA) - a comprehensive and highly configurable roller blind blueprint

Hello, I’m currently seeing error messages in my log, and I believe they’re related to my CCA blueprint. Do you have any idea what the error might be? What I should be looking for?

Logger: homeassistant.helpers.script
Quelle: helpers/script.py:701
Erstmals aufgetreten: 21. Juli 2025 um 18:24:00 (2 Vorkommnisse)
Zuletzt protokolliert: 21. Juli 2025 um 18:24:00

Error in ‘if[0]’ evaluation: In ‘or’ (item 7 of 7): In ‘or’ (item 1 of 3): In ‘template’ condition: UndefinedError: ‘list object’ has no attribute ‘startswith’

Hello, I’m completely new to CCA and have a few basic questions:

Although I’ve taken almost all of the settings from the blueprint, additionally defined correct and functioning shutter Cover Status Helper, the “Configuration Check” function is returning a ton of errors. For example, the system log shows ‘time_up_early should be earlier than time_up_late’, even though I took over these settings unchanged from the blueprint.
It also reports ‘Cover is missing attribute current_position’, even though my shutter includes this attribute. It also reports ‘Wrong length of the cover status helper’, even though my status helper is defined with “max=255” or “max=254”. It reports many other errors that aren’t even among the features I’ve enabled.
My first basic question is whether the “Configuration Check” function is returning not existing errors, or whether this is actually related to my settings.
I think it will be useful to ask other questions only after the issue of the “Configuration Check” function has been resolved.
Thanks in advance for your feedback.
Best regards
Tom

New Update

2025.07.22:
  - Fixed: Prevent 'startswith' error by validating shading_forecast_sensor type
  - Removed default weather condition presets for sun shading activation.
  - Moved shading condition checks from trigger to condition block to prevent unintended triggering on cover_status_helper state changes.

Should be fixed in v2025-07-22 now. Thank you.

I’m German myself, but I can’t help you with a complete translation. Not even via an AI.

Simply copy the texts in question here: DeepL Übersetzer: Der präziseste Übersetzer der Welt

I think this bug is now fixed in today’s version. I had to change a few things back.

Unfortunately, the files are no longer available.

Thank you! As I was affected as well, let’s see whether this fixes the issue.

I spent a long time thinking about how to convey this logically and visually. It is difficult.

No, you can now select that Sensor2 is also checked in all forecast temperature comparisons. This has always been done before. However, it wasn’t transparent enough for me and it led to queries. That’s why I’ve now made it configurable.

I need to adapt the description text a little. This is not primarily about triggering. It’s about checking additional conditions.

The problem is that a weather forecast cannot trigger independently. Because there is no state for the predicted temperature. At least if you use a weather entity.
However, if you have a sensor entity, you could trigger it. But both use the same input field. I don’t like that. It becomes so complicated for the end user.

But it is triggered the other way round. Changes to sensor2 trigger the automation.

And one hour before the earliest opening time, I installed a time trigger that checks all weather forecasts.

1 Like

Hmm. That worries me a little. I can’t technically reproduce it here, but I believe you. Can you show me your config?

Update:
There seems to be an error in the programming. Incorrect errors are being output. I’ll have a look at it.

My Blueprint config:

id: '1753186232279'
alias: CCA Test1
description: ''
use_blueprint:
  path: hvorragend/cover_control_automation.yaml
  input:
    blind: cover.plus2pm_roller_cover_0
    cover_status_helper: input_text.coverhelpertry2
    drive_time: 30
    close_position: 16
    auto_options:
      - auto_up_enabled
      - auto_down_enabled
      - auto_shading_enabled
    default_brightness_sensor: sensor.lumi_2_illuminance
    brightness_time_duration: 2
    brightness_up: 40
    brightness_down: 30
    check_config: true
    time_control: time_control_disabled
    shading_brightness_sensor: sensor.lumi_1_illuminance
    shading_sun_brightness_start: 40000
    shading_sun_brightness_end: 20000
    shading_temperatur_sensor1: sensor.s1_temperature
    shading_min_temperatur1: 19
    shading_forecast_type: weather_attributes
    shading_azimuth_start: 95
    shading_azimuth_end: 265
    shading_position: 18
    shading_config: []
    shading_temperature_hysteresis1: 1

I also wonder about theo following in “Changed variables”:

cover_status_options: cover_helper_disabled
cover_status_helper: input_text.coverhelpertry2
...
is_status_helper_enabled: false

Please tell me know if you need more details.
Thanks in advance.

Okay, I have checked this again in detail and there is no bug in the code.

What you see in the HA log are cumulated log lines.
Not every error has to be current.

There was probably a time before where the helper was not configured correctly. Or also a time when the cover entity was set incorrectly and therefore the attribute could not be determined.

Clear your HA log and then take another look. Then you will only see the real errors.

You will then see an error stating that you want to use the shading mode but have not activated the Cover Status Helper. You have set a helper, but not “flipped the switch”.

thanks for the explanation, it makes sense to me now.
I will try to create a template sensor to use in place of the weather entity. I don’t use the forecast for weather conditions since I rely on illuminance sensors outside my home

thanks again!

Hi @Herr.Vorragend

the cover were again not opened today when reaching shading_azimuth_end.

It seems to be triggered, but the execution was stopped. This was false:

    {{
      states(cover_status_helper) not in ['', 'unknown', 'unavailable', 'none'] and
      states(cover_status_helper) | regex_search('"shading"\s*:\s*\{[^}]*"a"\s*:\s*1') and
      states(cover_status_helper) | regex_search('"shading"\s*:\s*\{[^}]*"p"\s*:\s*0') and
      states(cover_status_helper) | regex_search('"shading"\s*:\s*\{[^}]*"q"\s*:\s*0')
    }}

The reason being, that the last regex_search was empty. This is the state of the associated helper:

{"open":{"a":1,"t":1753251060},"close":{"a":0,"t":0},"shading":{"a":1,"t":1753263601,"p":0,"q":1753263901},"vpart":{"a":0,"t":0},"vfull":{"a":0,"t":0},"manual":{"a":0,"t":1753221663},"v":5,"t":1753263601}

As you can see, "q":1753263901 is not 0. But I might be mistaken in interpreting this data.

Here you can see the whole trace: trace.json · GitHub

Edit: Same thing happens when the sun brightness falls below shading_sun_brightness_end.

2 Likes

Thanks a lot for your help.
However, I am getting the same “false error logs” if “Check Configuration” is checked in my CCA.
I did the following:

  • As “CLEAR” in Settings->System->Logs in HA-GUI does not really clear all logs, I truncated config/home-assistant.log to size 0 after having logged into my HA (Raspberry PI4) by ssh and restarted HA by “Restart Home Assistant” in HA-GUI
  • Having manually running my CCA I downloaded the logs from Settings->System->Logs and saw the same “false errors” reported by “Check Configuration”. Please have a look in log file below.

Just a remark: My CCA had been fired by a trigger bevor I run it manually, so you will see it in the log file. I removed from the log file all entries not related to my CCA.

What do you mean with "have … but not flipped the switch”?
I created my Status Helper like described in your CCA Blueprint, i.e. “a input_text entity with a length of 254 chars” within the “Cover Status Helper” dialog and I do not understand what I should have done else - please find an image in the attachment.

CCA logfile:

2025-07-23 21:33:38.537 INFO (MainThread) [homeassistant.components.automation.cca_test1] Initialized trigger CCA Test1
...
2025-07-23 21:34:15.278 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Running automation actions
2025-07-23 21:34:15.283 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Executing step assigning variables
2025-07-23 21:34:15.569 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: Running automation actions
2025-07-23 21:34:15.580 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Running automation actions
2025-07-23 21:34:15.624 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 1 of 21 with item: {'condition': False, 'message': 'time_up_early should be earlier than time_up_late'}
2025-07-23 21:34:15.625 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:15.644 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 2 of 21 with item: {'condition': False, 'message': 'time_up_early_non_workday should be earlier than time_up_late_non_workday'}
2025-07-23 21:34:15.645 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:15.664 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 3 of 21 with item: {'condition': False, 'message': 'time_down_early should be earlier than time_down_late'}
2025-07-23 21:34:15.664 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:15.682 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 4 of 21 with item: {'condition': False, 'message': 'time_down_early_non_workday should be earlier than time_down_late_non_workday'}
2025-07-23 21:34:15.683 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:15.700 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 5 of 21 with item: {'condition': False, 'message': 'shading_azimuth_start should be lower than shading_azimuth_end'}
2025-07-23 21:34:15.701 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:15.719 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 6 of 21 with item: {'condition': False, 'message': 'shading_elevation_min should be lower than shading_elevation_max'}
2025-07-23 21:34:15.721 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:15.739 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 7 of 21 with item: {'condition': False, 'message': 'shading_sun_brightness_start should be higher than shading_sun_brightness_end'}
2025-07-23 21:34:15.740 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:15.758 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 8 of 21 with item: {'condition': False, 'message': 'open_position should be higher than close_position'}
2025-07-23 21:34:15.759 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:15.777 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 9 of 21 with item: {'condition': False, 'message': 'open_position should be higher than ventilate_position'}
2025-07-23 21:34:15.778 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:15.795 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 10 of 21 with item: {'condition': False, 'message': 'close_position should be lower than ventilate_position'}
2025-07-23 21:34:15.798 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:15.817 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 11 of 21 with item: {'condition': False, 'message': 'shading_position should be higher than close_position'}
2025-07-23 21:34:15.818 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:15.835 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 12 of 21 with item: {'condition': False, 'message': 'shading_position should be lower than open_position'}
2025-07-23 21:34:15.836 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:15.855 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 13 of 21 with item: {'condition': False, 'message': 'Please revise the position values and take the tolerance values into account. The values must not overlap'}
2025-07-23 21:34:15.856 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:15.875 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 14 of 21 with item: {'condition': False, 'message': 'resident_sensor is only allowed to be on/off/true/false'}
2025-07-23 21:34:15.876 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:15.894 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 15 of 21 with item: {'condition': False, 'message': 'Cover is missing attribute current_position'}
2025-07-23 21:34:15.895 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:15.913 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 16 of 21 with item: {'condition': False, 'message': 'Sun sensor is missing attribute elevation'}
2025-07-23 21:34:15.914 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:15.931 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 17 of 21 with item: {'condition': False, 'message': 'Sun sensor is missing attribute azimuth'}
2025-07-23 21:34:15.933 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:15.952 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 18 of 21 with item: {'condition': False, 'message': 'Brightness sensor not defined or state is not numeric'}
2025-07-23 21:34:15.952 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:15.971 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 19 of 21 with item: {'condition': False, 'message': 'Wrong length of the cover status helper'}
2025-07-23 21:34:15.971 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:15.990 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 20 of 21 with item: {'condition': True, 'message': 'Shading, ventilation and lockout protection require a cover status helper to be configured'}
2025-07-23 21:34:15.990 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:16.008 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: If at step 1: Running automation actions
2025-07-23 21:34:16.010 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: If at step 1: Executing step call service
2025-07-23 21:34:16.018 INFO (MainThread) [blueprints.hvorragend.cca] CCA Config issue: Shading, ventilation and lockout protection require a cover status helper to be configured - automation.cca_test1
2025-07-23 21:34:16.025 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 21 of 21 with item: {'condition': False, 'message': 'Schedule mode selected but no schedule helper specified'}
2025-07-23 21:34:16.025 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
...
2025-07-23 21:34:50.375 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Running automation actions
2025-07-23 21:34:50.377 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Executing step assigning variables
2025-07-23 21:34:50.595 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: Running automation actions
2025-07-23 21:34:50.608 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Running automation actions
2025-07-23 21:34:50.660 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 1 of 21 with item: {'condition': False, 'message': 'time_up_early should be earlier than time_up_late'}
2025-07-23 21:34:50.661 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:50.683 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 2 of 21 with item: {'condition': False, 'message': 'time_up_early_non_workday should be earlier than time_up_late_non_workday'}
2025-07-23 21:34:50.684 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:50.705 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 3 of 21 with item: {'condition': False, 'message': 'time_down_early should be earlier than time_down_late'}
2025-07-23 21:34:50.706 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:50.729 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 4 of 21 with item: {'condition': False, 'message': 'time_down_early_non_workday should be earlier than time_down_late_non_workday'}
2025-07-23 21:34:50.730 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:50.752 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 5 of 21 with item: {'condition': False, 'message': 'shading_azimuth_start should be lower than shading_azimuth_end'}
2025-07-23 21:34:50.753 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:50.775 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 6 of 21 with item: {'condition': False, 'message': 'shading_elevation_min should be lower than shading_elevation_max'}
2025-07-23 21:34:50.775 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:50.798 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 7 of 21 with item: {'condition': False, 'message': 'shading_sun_brightness_start should be higher than shading_sun_brightness_end'}
2025-07-23 21:34:50.799 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:50.821 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 8 of 21 with item: {'condition': False, 'message': 'open_position should be higher than close_position'}
2025-07-23 21:34:50.821 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:50.843 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 9 of 21 with item: {'condition': False, 'message': 'open_position should be higher than ventilate_position'}
2025-07-23 21:34:50.844 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:50.867 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 10 of 21 with item: {'condition': False, 'message': 'close_position should be lower than ventilate_position'}
2025-07-23 21:34:50.868 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:50.890 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 11 of 21 with item: {'condition': False, 'message': 'shading_position should be higher than close_position'}
2025-07-23 21:34:50.891 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:50.912 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 12 of 21 with item: {'condition': False, 'message': 'shading_position should be lower than open_position'}
2025-07-23 21:34:50.913 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:50.935 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 13 of 21 with item: {'condition': False, 'message': 'Please revise the position values and take the tolerance values into account. The values must not overlap'}
2025-07-23 21:34:50.936 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:50.958 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 14 of 21 with item: {'condition': False, 'message': 'resident_sensor is only allowed to be on/off/true/false'}
2025-07-23 21:34:50.959 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:50.982 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 15 of 21 with item: {'condition': False, 'message': 'Cover is missing attribute current_position'}
2025-07-23 21:34:50.983 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:51.005 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 16 of 21 with item: {'condition': False, 'message': 'Sun sensor is missing attribute elevation'}
2025-07-23 21:34:51.006 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:51.028 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 17 of 21 with item: {'condition': False, 'message': 'Sun sensor is missing attribute azimuth'}
2025-07-23 21:34:51.029 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:51.051 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 18 of 21 with item: {'condition': False, 'message': 'Brightness sensor not defined or state is not numeric'}
2025-07-23 21:34:51.052 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:51.077 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 19 of 21 with item: {'condition': False, 'message': 'Wrong length of the cover status helper'}
2025-07-23 21:34:51.078 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:51.100 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 20 of 21 with item: {'condition': True, 'message': 'Shading, ventilation and lockout protection require a cover status helper to be configured'}
2025-07-23 21:34:51.101 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
2025-07-23 21:34:51.121 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: If at step 1: Running automation actions
2025-07-23 21:34:51.124 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: If at step 1: Executing step call service
2025-07-23 21:34:51.133 INFO (MainThread) [blueprints.hvorragend.cca] CCA Config issue: Shading, ventilation and lockout protection require a cover status helper to be configured - automation.cca_test1
2025-07-23 21:34:51.141 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeating sequence: Iteration 21 of 21 with item: {'condition': False, 'message': 'Schedule mode selected but no schedule helper specified'}
2025-07-23 21:34:51.141 INFO (MainThread) [homeassistant.components.automation.cca_test1] CCA Test1: Choose at step 5: default: If at step 1: Repeat at step 1: Running automation actions
...

My current CCA config:

alias: CCA Test1
description: ""
use_blueprint:
  path: hvorragend/cover_control_automation.yaml
  input:
    blind: cover.plus2pm_roller_cover_0
    cover_status_helper: input_text.coverhelpertry2
    drive_time: 28
    close_position: 16
    auto_options:
      - auto_up_enabled
      - auto_down_enabled
      - auto_shading_enabled
      - auto_sun_enabled
    default_brightness_sensor: sensor.lumi_1_linkquality
    brightness_time_duration: 30
    brightness_up: 1200
    brightness_down: 1000
    check_config: true
    time_control: time_control_disabled
    shading_brightness_sensor: sensor.lumi_1_illuminance
    shading_sun_brightness_start: 100000
    shading_sun_brightness_end: 50000
    shading_temperatur_sensor1: sensor.s1_temperature
    shading_min_temperatur1: 19
    shading_forecast_type: weather_attributes
    shading_azimuth_start: 0
    shading_azimuth_end: 360
    shading_position: 18
    shading_config: []
    shading_elevation_min: 50
    sun_elevation_up: 10
    sun_elevation_down: 15
    sun_time_duration: 1

My Cover Status Helper:

      {                           
        "id": "coverhelpertry2",
        "name": "CoverHelperTry2",
        "min": 1,                 
        "max": 255,               
        "mode": "text"            
      },

cover_status_options: cover_helper_disabled

By the way:

Your many lines are not errors, but you seem to have debug mode active in HA.

There is only one error and it fits my statement:

2025-07-23 21:34:51.133 INFO (MainThread) [blueprints.hvorragend.cca] CCA Config issue: Shading, ventilation and lockout protection require a cover status helper to be configured - automation.cca_test1

At last I figured it out - I had to check “Also use an external Cover Status Helper (better)” explicitly … I thought it were an option.

Thank you for explanation to many lines like “shading_azimuth_start should be lower than shading_azimuth_end” or “Sun sensor is missing attribute elevation”, I interpreted them incorrect, sorry for you unnecessary effort.

Actually. I have not set debug logging, at least not conscious. From my configuration.yaml:

logger:
  default: info
  logs:
    aioshelly: debug 
    homeassistant.components.shelly: info

I found no other config file, setting logging to debug mode.
Thank you very much for your support, especially for your excellent (hervorragenden :wink:) Blueprint.

I created a detailed bug report with an analysis: Shading not ending when condition changed in previous waiting time · Issue #258 · hvorragend/ha-blueprints · GitHub

1 Like