It took a while, but I found a solution to the problem. I’m posting it here in the hopes that it’s helpful to others:
The problem with this integration (and several others, as I learned) is that Home Assistant made a change that the author of the Adaptive Cover custom component integration hasn’t accounted for. The config_flow.py file of the integration needs to be edited to fix the problem.
Because my coding experience is getting pretty rusty, I asked Claude.ai to help me make the right changes so I’ll quote it directly here:
The error is clear. Here’s what’s happening and how to fix it:
The Error:
AttributeError: property 'config_entry' of 'OptionsFlowHandler' object has no setter
In a recent version of Home Assistant, OptionsFlowHandler (the base class) made config_entry a read-only property. The adaptive_cover integration’s OptionsFlowHandler.__init__ is still trying to assign to it directly (self.config_entry = config_entry), which now fails.
The Fix:
Open the file /config/custom_components/adaptive_cover/config_flow.py and find the OptionsFlowHandler.__init__ method around line 640. It looks like this:
def __init__(self, config_entry):
self.config_entry = config_entry # ← This line causes the error
Change it to store the entry under a different attribute name, and update any references to it within the class:
def __init__(self, config_entry):
self._config_entry = config_entry # Use a private attribute instead
Then find every place in OptionsFlowHandler that uses self.config_entry and rename it to self._config_entry. (The base class’s self.config_entry property will still work correctly for HA internals — you just can’t assign to it.)
Alternatively, the cleanest modern HA pattern is to not pass config_entry to __init__ at all, since HA now injects it automatically via the config_entry property. You can remove the __init__ entirely and update async_get_options_flow to just:
@staticmethod
@callback
def async_get_options_flow(config_entry):
return OptionsFlowHandler()
And in OptionsFlowHandler, replace self.config_entry with the inherited property (which is already set by HA automatically).
Quickest fix: In line 640, rename self.config_entry → self._entry, and do a find-replace within the OptionsFlowHandler class to replace all self.config_entry with self._entry. This avoids touching the rest of the class logic.
I made the suggested edit in the config_flow.py file I found in config/custom_components/adaptive_cover, restarted Home Assistant and am now able to change the configuration as needed.
FWIW, I used Claude.ai to fix the config_flow errors in two other custom integrations (alarm.com and underground pws). In those cases, I didn’t even bother to edit the config_flow file myself. I uploaded it to Claude.ai and told it to make the changes itself. it worked. All I had to do it copy the resulting, edited file into the right director and restart HA.
I suspect, these edited files will get overwritten at some point when I do an update, but hopefully the authors of these integrations will fix them by then.