Giter Site home page Giter Site logo

basbruss / adaptive-cover Goto Github PK

View Code? Open in Web Editor NEW
54.0 1.0 7.0 1.45 MB

An Adaptive Cover component for HomeAsisstant to control covers based on the sun's position

License: MIT License

Python 24.77% Jupyter Notebook 75.04% Shell 0.19%
cover direct home-assistant light sun

adaptive-cover's Introduction

Version

logo logo

Adaptive Cover

This Custom-Integration provides sensors for vertical and horizontal blinds based on the sun's position by calculating the position to filter out direct sunlight.

This integration builds upon the template sensor from this forum post Automatic Blinds

Features

  • Individual service devices for vertical, horizontal and tilted covers

  • Two mode approach with multiple strategies Modes(basic,climate)

  • Binary Sensor to track when the sun is in front of the window

  • Sensors for start and end time

  • Auto manual override detection

  • Climate Mode

    • Weather condition based operation
    • Presence based operation
    • Switch to toggle climate mode
    • Sensor for displaying the operation modus (winter,intermediate,summer)
  • Adaptive Control

    • Turn control on/off
    • Control multiple covers
    • Set start time to prevent opening blinds while you are asleep
    • Set minimum interval time between position changes
    • set minimum percentage change

Installation

HACS (Recommended)

Add https://github.com/basbruss/adaptive-cover as custom repository to HACS. Search and download Adaptive Cover within HACS.

Restart Home-Assistant and add the integration.

Manual

Download the adaptive_cover folder from this github. Add the folder to config/custom_components/.

Restart Home-Assistant and add the integration.

Setup

Adaptive Cover supports (for now) three types of covers/blinds; Vertical and Horizontal and Venetian (Tilted) blinds. Each type has its own specific parameters to setup a sensor. To setup the sensor you first need to find out the azimuth of the window(s). This can be done by finding your location on Open Street Map Compass.

Cover Types

Vertical Horizontal Tilted
alt text alt text alt text
Movement Up/Down In/Out Tilting
variables variables variables

Modes

This component supports two strategy modes: A basic mode and a climate comfort/energy saving mode that works with presence and temperature detection.

  graph TD

  A[("fa:fa-sun Sundata")]
  A --> B["Basic Mode"]
  A --> C["Climate Mode"]

  subgraph "Basic Mode"
      B --> BA("Sun within field of view")

      BA --> |No| BC{{Default}}
      BC --> BE("Time between sunset and sunrise?")
      BE --> |Yes| BF["Return default"]
      BE --> |No| BG["Return Sunset default"]

      BA --> |Yes| BD("Elevation above 0?")
      BD --> |Yes| BH{{"Calculated Position"}}
      BD --> |No| BC
  end

  subgraph "Climate Mode"
      C --> CA("Check Presence")
  end

  subgraph "Occupants"
      CA --> |True| CB("Temperature above maximum comfort (summer)?")

      CB --> |Yes| CD("Transparent blind?")
      CB --> |No| CE("Lux/Irradiance below threshold or Weather is not sunny?")

      CD --> |Yes| CF["Return fully closed (0%)"]
      CD --> |No| B

      CE --> |Yes| CG("Temperature below minimum comfort (winter) and sun infront of window and elevation > 0?")
      CE --> |No| B

      CG --> |Yes| CH["Return fully open (100%)"]
      CG --> |No| BC
  end

  subgraph "No Occupants"
      CA --> |False| CC("Sun infront of window and elevation > 0?")
      CC --> |No| BC
      CC --> |Yes| CI("Temperature above maximum comfort (summer)?")
      CI --> |Yes| CH
      CI --> |No| CJ("Temperature below minimum comfort (winter)")
      CJ --> |Yes| CF
      CJ --> |No| BC
  end
Loading

Basic mode

This mode uses the calculated position when the sun is within the specified azimuth range of the window. Else it defaults to the default value or after sunset value depending on the time of day.

Climate mode

This mode calculates the position based on extra parameters for presence, indoor temperature, minimal comfort temperature, maximum comfort temperature and weather (optional). This mode is split up in two types of strategies; Presence and No Presence.

Climate strategies

  • No Presence: Providing daylight to the room is no objective if there is no presence.

    • Below minimal comfort temperature: If the sun is above the horizon and the indoor temperature is below the minimal comfort temperature it opens the blind fully or tilt the slats to be parallel with the sun rays to allow for maximum solar radiation to heat up the room.

    • Above maximum comfort temperature: The objective is to not heat up the room any further by blocking out all possible radiation. All blinds close fully to block out light.

      If the indoor temperature is between both thresholds the position defaults to the set default value based on the time of day.

  • Presence (or no Presence Entity set): The objective is to reduce glare while providing daylight to the room. All calculation is done by the basic model for Horizontal and Vertical blinds.

    If you added a weather entity, it will only use the above calculations if the weather state corresponds with the existence of direct sun rays. These states are sunny,windy, partlycloudy, and cloudy by default, but you can change the list of states in the weather options. If not equal to these states the position will default to the default value to allow more sunlight entering the room with minimizing the glare due to the weather condition.

    Tilted blinds will only deviate from the above approach if the inside temperature is above the maximum comfort temperature. In that case, the slats will be positioned at 45 degrees as this is found optimal.

Variables

Common

Variables Default Range Description
Entities [] Denotes entities controllable by the integration
Window Azimuth 180 0-359 The compass direction of the window, discoverable via Open Street Map Compass
Default Position 60 0-100 Initial position of the cover in the absence of sunlight glare detection
Maximum Position 100 1-100 Maximum opening position for the cover, suitable for partially opening certain cover types
Field of view Left 90 1-90 Unobstructed viewing angle from window center to the left, in degrees
Field of view Right 90 1-90 Unobstructed viewing angle from window center to the right, in degrees
Minimal Elevation None 0-90 Minimal elevation degree of the sun to be considered
Maximum Elevation None 1-90 Maximum elevation degree of the sun to be considered
Default position after Sunset 0 0-100 Cover's default position from sunset to sunrise
Offset Sunset time 0 Additional minutes before/after sunset
Offset Sunrise time 0 Additional minutes before/after sunrise
Inverse State False Calculates inverse state for covers fully closed at 100%

Vertical

Variables Default Range Description
Window Height 2.1 0.1-6 Length of fully extended cover/window
Workarea Distance 0.5 0.1-2 The distance to the workarea on equal height to the bottom of the cover when fully extended

Horizontal

Variables Default Range Description
Awning Height 2 0.1-6 Height from work area to awning mounting point
Awning Length (horizontal) 2.1 0.3-6 Length of the awning when fully extended
Awning Angle 0 0-45 Angle of the awning from the wall
Workarea Distance 0.5 0.1-2 Distance to the work area

Tilt

Variables Default Range Description
Slat Depth 3 0.1-15 Width of each slat
Slat Distance 2 0.1-15 Vertical distance between two slats in horizontal position
Tilt Mode Bi-directional

Automation

Variables Default Range Description
Minimum Delta Position 1 1-90 Minimum position change required before another change can occur
Minimum Delta Time 2 Minimum time gap between position change
Start Time "00:00:00" Earliest time a cover can be adjusted after midnight
Start Time Entity None The earliest moment a cover may be changed after midnight. Overrides the start_time value
Manual Override Duration 15 min Minimum duration for manual control status to remain active
Manual Override reset Timer False Resets duration timer each time the position changes while the manual control status is active
Manual Override Threshold None 1-99 Minimal position change to be recognized as manual change
Manual Override ignore intermediate states False Ignore StateChangedEvents that have state opening or closing
End Time "00:00:00" Latest time a cover can be adjusted each day
End Time Entity None The latest moment a cover may be changed . Overrides the end_time value
Adjust at end time False Make sure to always update the position to the default setting at the end time.

Climate

Variables Default Range Example Description
Indoor Temperature Entity None climate.living_room | sensor.indoor_temp
Minimum Comfort Temperature 21 0-86
Maximum Comfort Temperature 25 0-86
Outdoor Temperature Entity None sensor.outdoor_temp
Presence Entity None
Weather Entity None weather.home Can also serve as outdoor temperature sensor
Lux Entity None sensor.lux Returns measured lux
Lux Threshold 1000 "In non-summer, above threshold, use optimal position. Otherwise, default position or fully open in winter."
Irradiance Entity None sensor.irradiance Returns measured irradiance
Irradiance Threshold 300 "In non-summer, above threshold, use optimal position. Otherwise, default position or fully open in winter."

Blindspot

Variables Default Range Example Description
Blind Spot Left None 0-max(fov_right, 180) Start point of the blind spot on the predefined field of view, where 0 is equal to the window azimuth - fov left.
Blind Spot Right None 1-max(fov_right, 180) End point of the blind spot on the predefined field of view, where 1 is equal to the window azimuth - fov left + 1 .
Blind Spot Elevation None 0-90 Minimal elevation of the sun for the blindspot area.

Entities

The integration dynamically adds multiple entities based on the used features.

These entities are always available:

Entities Default Description
sensor.{type}_cover_position_{name} Reflects the current state determined by predefined settings and factors such as sun position, weather, and temperature
sensor.{type}_control_method_{name} intermediate Indicates the active control strategy based on weather conditions. Options include winter, summer, and intermediate
sensor.{type}_start_sun_{name} Shows the starting time when the sun enters the window's view, with an interval of every 5 minutes.
sensor.{type}_end_sun_{name} Indicates the ending time when the sun exits the window's view, with an interval of every 5 minutes.
binary_sensor.{type}_manual_override_{name} off Indicates if manual override is engaged for any blinds.
binary_sensor.{type}_sun_infront_{name} off Indicates whether the sun is in front of the window within the designated field of view.
switch.{type}_toggle_control_{name} on Activates the adaptive control feature. When enabled, blinds adjust based on calculated position, unless manually overridden.
switch.{type}_manual_override_{name} on Enables detection of manual overrides. A cover is marked if its position differs from the calculated one, resetting to adaptive control after a set duration.
button.{type}_reset_manual_override_{name} on Resets manual override tags for all covers; if switch.{type}_toggle_control_{name} is on, it also restores blinds to their correct positions.

When climate mode is setup you will also get these entities:

Entities Default Description
switch.{type}_climate_mode_{name} on Enables climate mode strategy; otherwise, defaults to the standard strategy.
switch.{type}_outside_temperature_{name} on Switches between inside and outside temperatures as the basis for determining the climate control strategy.

entities

Features Planned

  • Manual override controls

    • Time to revert back to adaptive control
    • Reset button
    • Wait until next manual/none adaptive change
  • Algorithm to control radiation and/or illumination

Simulation

combined_simulation

Blueprint (deprecated since v1.0.0)

This integration provides the option to download a blueprint to control the covers automatically by the provide sensor. By selecting the option the blueprints will be added to your local blueprints folder.

adaptive-cover's People

Contributors

basbruss avatar cybe avatar dependabot[bot] avatar kodymallory avatar mion00 avatar travisp avatar tuday2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

adaptive-cover's Issues

Bug In 1.2.0-b0 Where It Still Operates Despite Being Totally Disabled

System Health details

System Information

version core-2024.3.1
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.12.2
os_name Linux
os_version 6.6.25-haos
arch x86_64
timezone America/Denver
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4989
Installed Version 1.34.0
Stage running
Available Repositories 1414
Downloaded Repositories 41
AccuWeather
can_reach_server ok
remaining_requests 45
Home Assistant Cloud
logged_in true
subscription_expiration December 28, 2024 at 5:00 PM
relayer_connected true
relayer_region us-east-1
remote_enabled false
remote_connected false
alexa_enabled false
google_enabled false
remote_server us-east-1-2.ui.nabu.casa
certificate_status ready
instance_id e4c3b0fc2d6345dd91513a760ef8ba51
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 12.2
update_channel stable
supervisor_version supervisor-2024.04.0
agent_version 1.6.0
docker_version 25.0.5
disk_total 196.2 GB
disk_used 162.3 GB
healthy true
supported true
board ova
supervisor_api ok
version_api ok
installed_addons Samba share (12.3.1), Terminal & SSH (9.13.0), Mosquitto broker (6.4.0), Samba Backup (5.2.0), HA Command Center (0.6.0), Z-Wave JS UI (3.4.2), Check Home Assistant configuration (3.11.0), Studio Code Server (5.15.0), NGINX Home Assistant SSL proxy (3.9.0), MariaDB (2.7.1), phpMyAdmin (0.9.1), InfluxDB (5.0.0), RTSP Simple Server Add-on (v0.17.6), ESPHome (2024.4.0), eufy-security-ws (1.8.0-2), Node-RED (17.0.12)
Dashboards
dashboards 8
resources 26
views 64
mode storage
Recorder
oldest_recorder_run March 5, 2024 at 4:11 PM
current_recorder_run April 18, 2024 at 8:55 AM
estimated_db_size 4252.48 MiB
database_engine mysql
database_version 10.11.6

Checklist

  • I have filled out the issue template to the best of my ability.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This issue is not a duplicate issue of currently previous issues..

Describe the issue

When you have disabled an adaptive cover entity it still runs. This pre-dates when you added the ability to turn off control, my solution was to just use Spook to totally disable those adaptive covers (and forgot I still had that happening on restart), and even though they are disabled they are still running automatically. This is new to recent betas, as this process worked fine before the toggle was added.

Reproduction steps

  1. Disable an adaptive cover entity
  2. Leave it and wait for automatic operations
  3. This is not isolated, it occurred on three different covers
    ...

Diagnostics dump

image

During stationary time, changes are applied

System Health details

System Information

version core-2024.4.3
installation_type Home Assistant Supervised
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.12.2
os_name Linux
os_version 5.10.0-28-amd64
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 5000
Installed Version 1.34.0
Stage running
Available Repositories 1403
Downloaded Repositories 26
Home Assistant Cloud
logged_in true
subscription_expiration 19 juin 2024 à 02:00
relayer_connected true
relayer_region eu-central-1
remote_enabled false
remote_connected false
alexa_enabled false
google_enabled true
remote_server eu-central-1-18.ui.nabu.casa
certificate_status ready
instance_id 381927b4921b47a797e587e8790e1775
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Debian GNU/Linux 11 (bullseye)
update_channel stable
supervisor_version supervisor-2024.04.0
agent_version 1.5.1
docker_version 26.0.0
disk_total 194.4 GB
disk_used 20.9 GB
healthy true
supported true
supervisor_api ok
version_api ok
installed_addons Studio Code Server (5.15.0), Samba Backup (5.2.0), AppDaemon (0.16.4), Mosquitto broker (6.4.0), Zigbee2MQTT (1.36.1-1), Z-Wave JS UI (3.4.2)
Dashboards
dashboards 2
resources 12
views 9
mode storage
Recorder
oldest_recorder_run 24 février 2024 à 10:15
current_recorder_run 16 avril 2024 à 12:21
estimated_db_size 1671.70 MiB
database_engine sqlite
database_version 3.44.2

Checklist

  • I have filled out the issue template to the best of my ability.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This issue is not a duplicate issue of currently previous issues..

Describe the issue

I’ve configured cover to don’t move before 10am.
But before this hour, If I change a configuration who change the calculated cover position, cover will update his position.

In my case, sun wasn’t in my window and I’ve change the default position.

Reproduction steps

  1. Define the hour before cover keep stationary (in the future)
  2. Change a configuration who change the calculated position
  3. Look the cover moving

Diagnostics dump

No response

Add "maximum" open setting so that roman shades don't try to open all the way

Checklist

  • I have filled out the template to the best of my ability.
  • This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
  • This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.

I have roman shades that can't/shouldn't go up more then 60%... I can set the default but often times it will open them to 100% which isn't good for the blinds as they aren't really made to fold up that far.

Describe the solution you'd like

Can a max "raise" height be set to override the maximum cover % it will open too , for me I want it to stop at 60% and be considered "fully open"

Describe alternatives you've considered

Somehow changing the sensor but figured I can't be the only ones that needs this.

Additional context

none

Unclear meaning of configuration parameters

Checklist

  • I have filled out the template to the best of my ability.
  • This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
  • This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.

Thank you for this great integration! I am eager to try it out with my outdoor (horizontal) awning, but I have some doubts in what the various parameters mean.
For instance windows height is described as:

Height of the window when fully extended

Is it a typo? What does it mean for the window to be fully extended?

Describe the solution you'd like

Does it perhaps mean the distance from the floor to the bottom part of the window?

Describe alternatives you've considered

Maybe adding a simple diagram to the README might help avoid clear any doubts.

Additional context

I have tried to draw a (very basic) sketch to explain my target setup. Are the labels indicated in the drawing correct?

adaptive_cover drawio

Option: Inverse the state won't work completly with climate data

What version of Adaptive Cover are you using?

1.1.4

What version of Home Assistant are you using?

2024.5.1

Checklist

  • I have filled out the issue template to the best of my ability.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This issue is not a duplicate issue of currently previous issues..

Describe the issue

I work with covers which are controlled via KNX actors within my HA instance. Unfortunately I have to use the "Inverse the state" option because 100% means fully opened and 0% closed.
Basic function is working, but as soon I configure the climate parameters including all optional sensors/parameter the "Inverse the state" option wont work here. Above the "High temperature threshold" the covers open instead of closing.

I think the "Inverse the state" option isn't programmed for climate settings (Layman's opinion)

Reproduction steps

  1. Basic configuration of cover
  2. activate "Inverse the state" option
  3. configure "Low/High temperature threshold"
  4. High temperate open cover / low close
    ...

Diagnostics dump

No response

Add external entity override for automatic cover positioning

Checklist

  • I have filled out the template to the best of my ability.
  • This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
  • This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.

I have set the vertical outside blinds to automatically go up and down depending on the position of the handle Sensors on the window handles.
whn I set the handle to „open“, the blind completely stays open.
all blind automations I had before then do not set the blind position when the handle is open, to minimize the risk of someone getting their head chopped of, getting locked out on the balcony or breaking the blind when the movable AC has its hose hanging out of the window.

Describe the solution you'd like

I would like the ability to set some kind of override for specific entities, like the handle position or a Boolean entity.

Describe alternatives you've considered

Setting up a timer, which presses the reset button every 14 minutes, for as long as the handle is in the „open“ position.

Additional context

If you need any more info, I will give you anything you need.

Adaptive cover adjustments are now failing with my tilt blinds

System Health details

System Information

version core-2024.3.0
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.12.2
os_name Linux
os_version 6.6.16-haos
arch x86_64
timezone America/New_York
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4981
Installed Version 1.34.0
Stage running
Available Repositories 1411
Downloaded Repositories 69
HACS Data ok
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 12.0
update_channel beta
supervisor_version supervisor-2024.03.0
agent_version 1.6.0
docker_version 24.0.7
disk_total 468.7 GB
disk_used 110.4 GB
healthy true
supported failed to load: Unsupported
board generic-x86-64
supervisor_api ok
version_api ok
installed_addons Z-Wave JS UI (3.4.1), MariaDB (2.6.1), Mosquitto broker (6.4.0), Nginx Proxy Manager (1.0.1), Overseerr (1.33.2), Portainer (2.19.4-3), Home Assistant Google Drive Backup (0.112.1), MQTT Explorer (browser-1.0.1), Radarr (5.3.6.8612), Sonarr (4.0.2.1262), Network UPS Tools (0.13.0), ESPHome (2024.2.2), Prowlarr NAS (nightly-1.14.2.4318-ls127), Zigbee2MQTT (1.36.0-1), Matter Server (5.4.1), Silicon Labs Multiprotocol (2.4.4), Scrypted (18-jammy-full.s6-v0.93.0), AdGuard Home (5.0.4), Mylar3 (0.7.8), Readarr (0.3.20.2452), Calibre (7.6.0), Studio Code Server (5.15.0), InfluxDB (5.0.0), Grafana (9.1.3), qBittorrent (4.6.3-4), rtlamr2mqtt (2.3.4), Piper (1.5.0), WeatherFlow to MQTT (3.2.2)
Husqvarna Automower
can_reach_server ok
Dashboards
dashboards 5
resources 37
views 31
mode storage
Recorder
oldest_recorder_run February 13, 2024 at 10:41 PM
current_recorder_run March 12, 2024 at 4:24 PM
estimated_db_size 4569.55 MiB
database_engine mysql
database_version 10.6.12

Checklist

  • I have filled out the issue template to the best of my ability.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This issue is not a duplicate issue of currently previous issues..

Describe the issue

The tilt position isn't updating for my blinds with the latest 0.3 versions

Reproduction steps

  1. Add a new adaptive cover integration
  2. select a blind set from the devices list
  3. no changes happen to the tilt position over time
    ...

Diagnostics dump

Unexpected error fetching adaptive_cover data: argument of type 'NoneType' is not iterable
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 318, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/adaptive_cover/coordinator.py", line 143, in _async_update_data
    climate_state = round(ClimateCoverState(cover_data, climate).get_state())
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/adaptive_cover/calculation.py", line 287, in get_state
    return self.tilt_state()
           ^^^^^^^^^^^^^^^^^
  File "/config/custom_components/adaptive_cover/calculation.py", line 281, in tilt_state
    return self.control_method_tilt_bi()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/adaptive_cover/calculation.py", line 253, in control_method_tilt_bi
    if self.climate_data.is_winter and self.climate_data.is_sunny:
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/adaptive_cover/calculation.py", line 198, in is_sunny
    return weather_state in weather_state
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: argument of type 'NoneType' is not iterable

Climate settings unable to be reconfigured

System Health details

System Information

version core-2024.4.3
installation_type Home Assistant Supervised
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.12.2
os_name Linux
os_version 5.10.0-28-amd64
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 5000
Installed Version 1.34.0
Stage running
Available Repositories 1403
Downloaded Repositories 26
Home Assistant Cloud
logged_in true
subscription_expiration 19 juin 2024 à 02:00
relayer_connected true
relayer_region eu-central-1
remote_enabled false
remote_connected false
alexa_enabled false
google_enabled true
remote_server eu-central-1-18.ui.nabu.casa
certificate_status ready
instance_id 381927b4921b47a797e587e8790e1775
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Debian GNU/Linux 11 (bullseye)
update_channel stable
supervisor_version supervisor-2024.04.0
agent_version 1.5.1
docker_version 26.0.0
disk_total 194.4 GB
disk_used 20.8 GB
healthy true
supported true
supervisor_api ok
version_api ok
installed_addons Studio Code Server (5.15.0), Samba Backup (5.2.0), AppDaemon (0.16.4), Mosquitto broker (6.4.0), Zigbee2MQTT (1.36.1-1), Z-Wave JS UI (3.4.2)
Dashboards
dashboards 2
resources 12
views 9
mode storage
Recorder
oldest_recorder_run 16 février 2024 à 21:39
current_recorder_run 16 avril 2024 à 12:21
estimated_db_size 1671.70 MiB
database_engine sqlite
database_version 3.44.2

Checklist

  • I have filled out the issue template to the best of my ability.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This issue is not a duplicate issue of currently previous issues..

Describe the issue

When i want to reconfigure a existing cover, i'm unable to update Climate settings
CleanShot 2024-04-16 at 13 51 09

Reproduction steps

  1. Create a cover
  2. Try to reconfigure the previous created as show in description

Diagnostics dump

No response

Venetian Blinds: Combination of Vertical and Tilted

Checklist

  • I have filled out the template to the best of my ability.
  • This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
  • This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.

I'm using Venetian Blinds which ar a Combination of Vertical and Tilted. Currently for each blind I have a vertical and a tilt service running simultaneously, because i want to have the close position and the tilt automated. I think, if one of this services changes a position, the other service takes it as manual override, which locks the automatic control for the override time.

Describe the solution you'd like

Another covertype "combined vertical and tilted" so you have an absolute position and a tilt position for each blind.

Describe alternatives you've considered

Multiple covertypes available at same service.

Additional context

If there already is an solution to automate vertical position and tilt position in one service, then sorry for my misunderstanding. "adaptive-cover" is great work, thank you for this.

Having Issues Dialing This In

What version of Adaptive Cover are you using?

1.1.3

What version of Home Assistant are you using?

2024.4.4

Checklist

  • I have filled out the issue template to the best of my ability.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This issue is not a duplicate issue of currently previous issues..

Describe the issue

When I had 1.1.0 it seems to work OK, my shades would set to a level where the sun wasn't overwhelming, it was perfect. Somewhere along the line, either my setup became incorrect (albeit unchanged since 1.1.0) or something else has changed because the shades seem to now do the opposite of what they should.

For example: I have two windows on the east side of my house, so Adaptive Cover for those are set to 90 degrees. The first thing in the morning the sun is incredibly intense and Adaptive Cover on the shades used to completely close and then inch up until the sun was off the windows, but for some reason now they do the opposite, they open to the maximum level and blind you in that room.

I'm not quite sure how to diagnose this. Right now I'm writing automation to only use the "in sun" sensor on each window to control them, but Adaptive Cover used to do this for me. As a test, just now, I went through and re-defined the settings as the sun is right on this window and as soon as I disabled the auto control and re-enabled it, the shade went to its default level and blinded me as I type this, so I had to turn it off and manually lower the shade.

How can I best diagnose this issue? Debug logging doesn't seem to give me any information useful for this.

Reproduction steps

  1. Use the system :)

...

Diagnostics dump

System Information

version core-2024.4.4
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.12.2
os_name Linux
os_version 6.6.25-haos
arch x86_64
timezone America/Denver
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4994
Installed Version 1.34.0
Stage running
Available Repositories 1418
Downloaded Repositories 45
Home Assistant Cloud
logged_in true
subscription_expiration December 28, 2024 at 5:00 PM
relayer_connected true
relayer_region us-east-1
remote_enabled true
remote_connected true
alexa_enabled false
google_enabled false
remote_server us-east-1-2.ui.nabu.casa
certificate_status ready
instance_id e4c3b0fc2d6345dd91513a760ef8ba51
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 12.2
update_channel stable
supervisor_version supervisor-2024.05.1
agent_version 1.6.0
docker_version 25.0.5
disk_total 196.2 GB
disk_used 136.8 GB
healthy true
supported true
board ova
supervisor_api ok
version_api ok
installed_addons Samba share (12.3.1), Terminal & SSH (9.13.0), Mosquitto broker (6.4.0), Samba Backup (5.2.0), HA Command Center (0.6.0), Z-Wave JS UI (3.6.0), Check Home Assistant configuration (3.11.0), Studio Code Server (5.15.0), NGINX Home Assistant SSL proxy (3.9.0), MariaDB (2.7.1), phpMyAdmin (0.9.1), InfluxDB (5.0.0), RTSP Simple Server Add-on (v0.17.6), ESPHome (2024.4.2), eufy-security-ws (1.8.0-2), Node-RED (17.0.12)
Dashboards
dashboards 11
resources 27
views 65
mode storage
Recorder
oldest_recorder_run March 25, 2024 at 5:12 PM
current_recorder_run May 7, 2024 at 8:02 AM
estimated_db_size 4252.50 MiB
database_engine mysql
database_version 10.11.6

Add lux/irradiation/temperature tests for Calculated position

Checklist

  • I have filled out the template to the best of my ability.
  • This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
  • This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.

Today is a cloudy day at home, but integration close to 6% my covers where sun is in front. But in fact, we have no sun really to generate glare.

Describe the solution you'd like

Ability to add condition on lux for normal mode
CleanShot 2024-04-17 at 15 53 04

I also think a external temperature trigger can be also useful to allow to manage energy saving also in normal mode or climate mode with presence. For example, if the day is hot, in addition to manage glare, we will be able to block room temperature increasing.
Something like this (addition is in red) :
image

When we need to do ecologic effort to save our planet, i think this can be useful for many people.

Describe alternatives you've considered

As alternative i known that we can disable disable control on some context and manage position with an automation but this will complex all the cover management.

Additional context

N/A

Automation for horizontal screens from Somfy only works on HA reboot

What version of Adaptive Cover are you using?

1.1.0

What version of Home Assistant are you using?

12.2

Checklist

  • I have filled out the issue template to the best of my ability.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This issue is not a duplicate issue of currently previous issues..

Describe the issue

My awnings controlled by Somfy only runs this adaptive sover automation when I reboot HA. Since the minimum retractable setting is 1%, this also means, that when I reboot HA during the evening/night, then the screen opens to 1%, and I have to manually pull it back in.

Reproduction steps

  1. Reboot HA
  2. Awnings go to the setting matching current time and other settings in my integration.

...

Diagnostics dump

No response

Manual override automatically "renews"

What version of Adaptive Cover are you using?

1.1.4

What version of Home Assistant are you using?

2024.4.3

Checklist

  • I have filled out the issue template to the best of my ability.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This issue is not a duplicate issue of currently previous issues..

Describe the issue

I have an issue with the manual override:
Whenever the manual override is activated, it deactivates automatically after the set up time (30 mins in my case), however it reactivates automatically right after
See screenshot:
Capture d'écran 2024-05-18 113624
For example I lowered the blind manually at 10:14, it deactivated at 10:45:35, which is correct, but reactivated at 10:45:42 without anyone doing anything
Same happened again at 11:15

Reproduction steps

...

Diagnostics dump

2024-05-18 10:14:46.697 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Run set_cover_position with data {'entity_id': 'cover.bureau_level', 'position': 56}
2024-05-18 10:14:49.695 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 3.016 seconds (success: True)
2024-05-18 10:14:49.846 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Processing state change event: StateChangedData(entity_id='cover.bureau_level', old_state=<state cover.bureau_level=open; current_position=99, device_class=shutter, friendly_name=Bureau, supported_features=15 @ 2024-05-18T07:45:31.648389+02:00>, new_state=<state cover.bureau_level=open; current_position=56, device_class=shutter, friendly_name=Bureau, supported_features=15 @ 2024-05-18T07:45:31.648389+02:00>)
2024-05-18 10:14:49.847 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Position 56 reached for cover.bureau_level
2024-05-18 10:14:49.847 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Wait for target: {'cover.bureau_level': False}
2024-05-18 10:14:52.027 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.180 seconds (success: True)
2024-05-18 10:14:54.496 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.421 seconds (success: True)
2024-05-18 10:14:54.911 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Processing state change event: StateChangedData(entity_id='cover.bureau_level', old_state=<state cover.bureau_level=open; current_position=56, device_class=shutter, friendly_name=Bureau, supported_features=15 @ 2024-05-18T07:45:31.648389+02:00>, new_state=<state cover.bureau_level=open; current_position=82, device_class=shutter, friendly_name=Bureau, supported_features=15 @ 2024-05-18T07:45:31.648389+02:00>)
2024-05-18 10:14:54.911 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Wait for target: {'cover.bureau_level': False}
2024-05-18 10:14:54.913 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Set manual control for cover.bureau_level, for at least 1800.0 seconds, reset_allowed: False
2024-05-18 10:14:54.914 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Updating last updated to 2024-05-18 08:14:54.904587+00:00 for cover.bureau_level. Allow reset:False
2024-05-18 10:14:57.705 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.793 seconds (success: True)
2024-05-18 10:15:01.499 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Processing state change event: StateChangedData(entity_id='cover.bureau_level', old_state=<state cover.bureau_level=open; current_position=82, device_class=shutter, friendly_name=Bureau, supported_features=15 @ 2024-05-18T07:45:31.648389+02:00>, new_state=<state cover.bureau_level=open; current_position=56, device_class=shutter, friendly_name=Bureau, supported_features=15 @ 2024-05-18T07:45:31.648389+02:00>)
2024-05-18 10:15:01.499 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Wait for target: {'cover.bureau_level': False}
2024-05-18 10:15:03.318 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 1.818 seconds (success: True)
2024-05-18 10:15:50.783 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 1.692 seconds (success: True)
2024-05-18 10:16:01.857 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.368 seconds (success: True)
2024-05-18 10:16:43.858 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.286 seconds (success: True)
2024-05-18 10:18:22.107 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.311 seconds (success: True)
2024-05-18 10:19:52.290 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 3.196 seconds (success: True)
2024-05-18 10:21:20.618 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.354 seconds (success: True)
2024-05-18 10:21:50.745 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.451 seconds (success: True)
2024-05-18 10:23:51.040 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 1.946 seconds (success: True)
2024-05-18 10:24:07.120 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.461 seconds (success: True)
2024-05-18 10:24:36.959 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.284 seconds (success: True)
2024-05-18 10:25:30.694 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 1.904 seconds (success: True)
2024-05-18 10:25:53.017 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.163 seconds (success: True)
2024-05-18 10:27:05.249 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.207 seconds (success: True)
2024-05-18 10:27:28.883 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 3.804 seconds (success: True)
2024-05-18 10:27:35.036 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 1.887 seconds (success: True)
2024-05-18 10:27:50.989 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 1.891 seconds (success: True)
2024-05-18 10:28:35.415 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.159 seconds (success: True)
2024-05-18 10:29:13.303 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 1.898 seconds (success: True)
2024-05-18 10:29:38.131 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 1.852 seconds (success: True)
2024-05-18 10:30:27.531 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 1.937 seconds (success: True)
2024-05-18 10:31:06.736 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 3.048 seconds (success: True)
2024-05-18 10:31:50.924 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 1.828 seconds (success: True)
2024-05-18 10:33:18.424 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.423 seconds (success: True)
2024-05-18 10:33:48.224 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.129 seconds (success: True)
2024-05-18 10:34:40.542 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.325 seconds (success: True)
2024-05-18 10:35:51.805 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.709 seconds (success: True)
2024-05-18 10:36:04.327 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 1.935 seconds (success: True)
2024-05-18 10:36:54.466 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 1.999 seconds (success: True)
2024-05-18 10:37:32.528 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 1.964 seconds (success: True)
2024-05-18 10:39:50.977 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 1.876 seconds (success: True)
2024-05-18 10:40:43.190 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.234 seconds (success: True)
2024-05-18 10:41:12.900 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 1.870 seconds (success: True)
2024-05-18 10:43:50.959 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 1.855 seconds (success: True)
2024-05-18 10:45:31.713 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Resetting manual override for cover.bureau_level, because duration has elapsed
2024-05-18 10:45:31.718 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Reset manual override for cover.bureau_level
2024-05-18 10:45:31.723 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Run set_cover_position with data {'entity_id': 'cover.bureau_level', 'position': 100}
2024-05-18 10:45:35.264 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 3.553 seconds (success: True)
2024-05-18 10:45:35.589 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Processing state change event: StateChangedData(entity_id='cover.bureau_level', old_state=<state cover.bureau_level=open; current_position=56, device_class=shutter, friendly_name=Bureau, supported_features=15 @ 2024-05-18T07:45:31.648389+02:00>, new_state=<state cover.bureau_level=open; current_position=100, device_class=shutter, friendly_name=Bureau, supported_features=15 @ 2024-05-18T07:45:31.648389+02:00>)
2024-05-18 10:45:35.590 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Position 100 reached for cover.bureau_level
2024-05-18 10:45:35.590 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Wait for target: {'cover.bureau_level': False}
2024-05-18 10:45:37.783 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.193 seconds (success: True)
2024-05-18 10:45:40.492 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Processing state change event: StateChangedData(entity_id='cover.bureau_level', old_state=<state cover.bureau_level=open; current_position=100, device_class=shutter, friendly_name=Bureau, supported_features=15 @ 2024-05-18T07:45:31.648389+02:00>, new_state=<state cover.bureau_level=open; current_position=72, device_class=shutter, friendly_name=Bureau, supported_features=15 @ 2024-05-18T07:45:31.648389+02:00>)
2024-05-18 10:45:40.492 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Wait for target: {'cover.bureau_level': False}
2024-05-18 10:45:40.494 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Set manual control for cover.bureau_level, for at least 1800.0 seconds, reset_allowed: False
2024-05-18 10:45:40.494 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Updating last updated to 2024-05-18 08:45:40.489254+00:00 for cover.bureau_level. Allow reset:False
2024-05-18 10:45:42.701 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.209 seconds (success: True)
2024-05-18 10:45:48.654 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Processing state change event: StateChangedData(entity_id='cover.bureau_level', old_state=<state cover.bureau_level=open; current_position=72, device_class=shutter, friendly_name=Bureau, supported_features=15 @ 2024-05-18T07:45:31.648389+02:00>, new_state=<state cover.bureau_level=open; current_position=100, device_class=shutter, friendly_name=Bureau, supported_features=15 @ 2024-05-18T07:45:31.648389+02:00>)
2024-05-18 10:45:48.657 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Wait for target: {'cover.bureau_level': False}
2024-05-18 10:45:51.269 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.611 seconds (success: True)
2024-05-18 10:46:11.738 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 1.954 seconds (success: True)
2024-05-18 10:47:51.246 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.133 seconds (success: True)
2024-05-18 10:48:24.853 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.711 seconds (success: True)
2024-05-18 10:50:32.265 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 1.815 seconds (success: True)
2024-05-18 10:50:40.610 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.168 seconds (success: True)
2024-05-18 10:51:51.041 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 1.934 seconds (success: True)
2024-05-18 10:51:53.342 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.276 seconds (success: True)
2024-05-18 10:52:22.651 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 1.967 seconds (success: True)
2024-05-18 10:52:52.921 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.150 seconds (success: True)
2024-05-18 10:53:25.216 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 4.361 seconds (success: True)
2024-05-18 10:54:23.184 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.189 seconds (success: True)
2024-05-18 10:54:31.676 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.630 seconds (success: True)
2024-05-18 10:55:51.487 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.380 seconds (success: True)
2024-05-18 10:59:07.834 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.165 seconds (success: True)
2024-05-18 10:59:50.942 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 1.833 seconds (success: True)
2024-05-18 11:00:08.047 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.205 seconds (success: True)
2024-05-18 11:01:08.270 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.209 seconds (success: True)
2024-05-18 11:01:20.985 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.940 seconds (success: True)
2024-05-18 11:01:50.527 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.446 seconds (success: True)
2024-05-18 11:02:20.526 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.344 seconds (success: True)
2024-05-18 11:03:51.130 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.645 seconds (success: True)
2024-05-18 11:03:53.070 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 1.875 seconds (success: True)
2024-05-18 11:04:51.083 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.511 seconds (success: True)
2024-05-18 11:05:42.962 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.240 seconds (success: True)
2024-05-18 11:06:12.719 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 1.886 seconds (success: True)
2024-05-18 11:07:53.439 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.263 seconds (success: True)
2024-05-18 11:08:33.529 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.339 seconds (success: True)
2024-05-18 11:10:25.529 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 1.998 seconds (success: True)
2024-05-18 11:11:29.611 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 1.981 seconds (success: True)
2024-05-18 11:11:53.210 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.043 seconds (success: True)
2024-05-18 11:14:38.143 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 1.997 seconds (success: True)
2024-05-18 11:14:40.723 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.557 seconds (success: True)
2024-05-18 11:15:08.025 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 1.837 seconds (success: True)
2024-05-18 11:15:51.202 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Resetting manual override for cover.bureau_level, because duration has elapsed
2024-05-18 11:15:51.207 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Reset manual override for cover.bureau_level
2024-05-18 11:15:51.211 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Run set_cover_position with data {'entity_id': 'cover.bureau_level', 'position': 58}
2024-05-18 11:15:53.250 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.053 seconds (success: True)
2024-05-18 11:15:53.386 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Processing state change event: StateChangedData(entity_id='cover.bureau_level', old_state=<state cover.bureau_level=open; current_position=100, device_class=shutter, friendly_name=Bureau, supported_features=15 @ 2024-05-18T07:45:31.648389+02:00>, new_state=<state cover.bureau_level=open; current_position=58, device_class=shutter, friendly_name=Bureau, supported_features=15 @ 2024-05-18T07:45:31.648389+02:00>)
2024-05-18 11:15:53.387 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Position 58 reached for cover.bureau_level
2024-05-18 11:15:53.387 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Wait for target: {'cover.bureau_level': False}
2024-05-18 11:15:55.604 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.217 seconds (success: True)
2024-05-18 11:16:00.378 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Processing state change event: StateChangedData(entity_id='cover.bureau_level', old_state=<state cover.bureau_level=open; current_position=58, device_class=shutter, friendly_name=Bureau, supported_features=15 @ 2024-05-18T07:45:31.648389+02:00>, new_state=<state cover.bureau_level=open; current_position=83, device_class=shutter, friendly_name=Bureau, supported_features=15 @ 2024-05-18T07:45:31.648389+02:00>)
2024-05-18 11:16:00.380 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Wait for target: {'cover.bureau_level': False}
2024-05-18 11:16:00.383 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Set manual control for cover.bureau_level, for at least 1800.0 seconds, reset_allowed: False
2024-05-18 11:16:00.383 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Updating last updated to 2024-05-18 09:15:59.693368+00:00 for cover.bureau_level. Allow reset:False
2024-05-18 11:16:02.678 DEBUG (MainThread) [custom_components.adaptive_cover] Finished fetching adaptive_cover data in 2.298 seconds (success: True)
2024-05-18 11:16:04.665 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Processing state change event: StateChangedData(entity_id='cover.bureau_level', old_state=<state cover.bureau_level=open; current_position=83, device_class=shutter, friendly_name=Bureau, supported_features=15 @ 2024-05-18T07:45:31.648389+02:00>, new_state=<state cover.bureau_level=open; current_position=58, device_class=shutter, friendly_name=Bureau, supported_features=15 @ 2024-05-18T07:45:31.648389+02:00>)
2024-05-18 11:16:04.665 DEBUG (MainThread) [custom_components.adaptive_cover.coordinator] Wait for target: {'cover.bureau_level': False}

Add support for extra conditions from blueprint to internal automation as of 1.0.1

Checklist

  • I have filled out the template to the best of my ability.
  • This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
  • This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.

With the blueprint that it was using from automation, you could add "Additional Conditions" to the automation to prevent it from running. This was useful for configuring things like overrides if the cover was controlled by an entity other than the automation.

Describe the solution you'd like

Migrate the functionality from the blueprint into the internal integration for Additional Conditions

Describe alternatives you've considered

NA

Additional context

image

Switch for turning on/off automatic control

Checklist

  • I have filled out the template to the best of my ability.
  • This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
  • This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.

Sometimes I need another position then the integration calculates. For example when watching a moving during day I want to close the shutter.

Describe the solution you'd like

A switch which turns on/off the automatic control via the integration.

Describe alternatives you've considered

Similar to the adaptive lightning integration, a check if the position has changed via a manual input.

Additional context

.

Time for latest Close wirhout sunset

Checklist

  • I have filled out the template to the best of my ability.
  • This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
  • This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.

Blinds close very late because sunset is always later.

Describe the solution you'd like

Is it possible to define a time for closing, even if it has not yet been sunset.

Describe alternatives you've considered

Alternatively, an automation must close the blind at a certain time.

Additional context

.

Switch to change between Basic and Climate mode

Checklist

  • I have filled out the template to the best of my ability.
  • This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
  • This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.

Right now, the inside temperature is than the maximum comfort temperature. But it is so sunny, that I want the shutter to be controlled as the temperature between the thresholds and not closed completely.

Describe the solution you'd like

A switch which changes the between basic and climate mode

Describe alternatives you've considered

A option to turn off/on the completely closing behaviour.

Additional context

.

Toggle Control Switch Not Surviving Restarts

System Health details

System Information

version core-2024.3.1
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.12.2
os_name Linux
os_version 6.6.20-haos
arch x86_64
timezone America/Denver
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4253
Installed Version 1.34.0
Stage running
Available Repositories 1414
Downloaded Repositories 41
AccuWeather
can_reach_server ok
remaining_requests 7
Home Assistant Cloud
logged_in true
subscription_expiration December 28, 2024 at 5:00 PM
relayer_connected true
relayer_region us-east-1
remote_enabled false
remote_connected false
alexa_enabled false
google_enabled false
remote_server us-east-1-2.ui.nabu.casa
certificate_status ready
instance_id e4c3b0fc2d6345dd91513a760ef8ba51
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 12.1
update_channel stable
supervisor_version supervisor-2024.03.1
agent_version 1.6.0
docker_version 24.0.7
disk_total 196.2 GB
disk_used 80.5 GB
healthy true
supported true
board ova
supervisor_api ok
version_api ok
installed_addons Samba share (12.3.1), Terminal & SSH (9.10.0), Mosquitto broker (6.4.0), Samba Backup (5.2.0), HA Command Center (0.6.0), Z-Wave JS UI (3.4.2), Check Home Assistant configuration (3.11.0), Studio Code Server (5.15.0), NGINX Home Assistant SSL proxy (3.9.0), MariaDB (2.6.1), phpMyAdmin (0.9.1), InfluxDB (5.0.0), RTSP Simple Server Add-on (v0.17.6), ESPHome (2024.3.1), eufy-security-ws (1.8.0-2), Node-RED (17.0.11)
Dashboards
dashboards 8
resources 25
views 64
mode storage
Recorder
oldest_recorder_run February 24, 2024 at 4:35 PM
current_recorder_run April 6, 2024 at 11:05 AM
estimated_db_size 3278.73 MiB
database_engine mysql
database_version 10.6.12

Checklist

  • I have filled out the issue template to the best of my ability.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This issue is not a duplicate issue of currently previous issues..

Describe the issue

When using the toggle switch to disable automating the curtains opening and closing everything works as expected until a restart of HA, then the switch is automatically turned back on again.

Reproduction steps

  1. Turn off the toggle on an entity
  2. Restart Home Assistant
  3. Toggle comes back on
    ...

Diagnostics dump

N/A

Add a end time after which covers should not be triggered automatically

Checklist

  • I have filled out the template to the best of my ability.
  • This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
  • This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.

I'm always frustrated when I close my blinds during the night as a protection for mosquitoes and the blind gets opened automatically

Describe the solution you'd like

I'd like to have the same as start date but for the end of the automation

Describe alternatives you've considered

I have to disable manually the adaptive cover

Additional context

No other context

Unable to add new integration getting error

System Health details

System Information

version core-2024.3.3
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.12.2
os_name Linux
os_version 6.6.20-haos
arch x86_64
timezone Europe/Amsterdam
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4636
Installed Version 1.34.0
Stage running
Available Repositories 1410
Downloaded Repositories 40
HACS Data ok
Home Assistant Cloud
logged_in true
subscription_expiration April 2, 2024 at 2:00 AM
relayer_connected true
relayer_region eu-central-1
remote_enabled false
remote_connected false
alexa_enabled true
google_enabled true
remote_server eu-central-1-14.ui.nabu.casa
certificate_status ready
instance_id 40bc7b67d1c5431387da8505a5808870
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 12.1
update_channel stable
supervisor_version supervisor-2024.03.0
agent_version 1.6.0
docker_version 24.0.7
disk_total 30.8 GB
disk_used 19.7 GB
healthy true
supported true
board ova
supervisor_api ok
version_api ok
installed_addons Samba share (12.3.1), Terminal & SSH (9.10.0), Tesla HTTP Proxy (1.3.7)
Dashboards
dashboards 3
resources 20
views 9
mode storage
Recorder
oldest_recorder_run March 13, 2024 at 10:58 AM
current_recorder_run March 23, 2024 at 4:37 PM
estimated_db_size 2454.54 MiB
database_engine sqlite
database_version 3.44.2

Checklist

  • I have filled out the issue template to the best of my ability.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This issue is not a duplicate issue of currently previous issues..

Describe the issue

When creating a new integration i am getting the following error on the integration page after clicking ok.
image

While i have an entity configured:
image

And the log files shows this:

Unexpected error fetching adaptive_cover data: cannot access local variable 'climate_data' where it is not associated with a value Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 318, in _async_refresh self.data = await self._async_update_data() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/adaptive_cover/coordinator.py", line 191, in _async_update_data "outside_temp": climate_data.outside_temperature, ^^^^^^^^^^^^ UnboundLocalError: cannot access local variable 'climate_data' where it is not associated with a value

Reproduction steps

  1. create a new adaptive cover integration
  2. Click submit
  3. Integration is not loaded and shows the error.
    ...

Diagnostics dump

No response

Modify Automation Configuration doesn't save

System Health details

System Information

version core-2024.4.3
installation_type Home Assistant Container
dev false
hassio false
docker true
user root
virtualenv false
python_version 3.12.2
os_name Linux
os_version 6.5.0-25-generic
arch x86_64
timezone America/New_York
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 5000
Installed Version 1.34.0
Stage running
Available Repositories 1402
Downloaded Repositories 11
Home Assistant Cloud
logged_in true
subscription_expiration April 15, 2024 at 8:00 PM
relayer_connected true
relayer_region us-east-1
remote_enabled true
remote_connected true
alexa_enabled false
google_enabled true
remote_server us-east-1-6.ui.nabu.casa
certificate_status ready
instance_id 0319c6ee631e4b35a0514cd43d18ff3f
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Dashboards
dashboards 5
resources 3
views 3
mode storage
Recorder
oldest_recorder_run April 5, 2024 at 11:58 PM
current_recorder_run April 15, 2024 at 10:43 AM
estimated_db_size 67.26 MiB
database_engine sqlite
database_version 3.44.2
Spotify
api_endpoint_reachable ok

Checklist

  • I have filled out the issue template to the best of my ability.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This issue is not a duplicate issue of currently previous issues..

Describe the issue

Any changes to the Automation Configuration menu don't save, both when initially setting up the integration and when editing an existing one.

Reproduction steps

  1. In the Integration page click CONFIGURE for any entry
  2. Click Modify Automation Configuration
  3. Change any setting
  4. Submit
  5. Re-enter menu to see if changes persist
    ...

Diagnostics dump

No response

Updating a cover results in all entities becoming unavailable

System Health details

System Information

version core-2024.3.0
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.12.2
os_name Linux
os_version 6.6.20-haos
arch x86_64
timezone America/New_York
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4999
Installed Version 1.34.0
Stage running
Available Repositories 1411
Downloaded Repositories 68
HACS Data ok
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 12.1
update_channel beta
supervisor_version supervisor-2024.03.0
agent_version 1.6.0
docker_version 24.0.7
disk_total 468.7 GB
disk_used 108.8 GB
healthy true
supported failed to load: Unsupported
board generic-x86-64
supervisor_api ok
version_api ok
installed_addons Z-Wave JS UI (3.4.1), MariaDB (2.6.1), Mosquitto broker (6.4.0), Nginx Proxy Manager (1.0.1), Overseerr (1.33.2), Portainer (2.19.4-3), Home Assistant Google Drive Backup (0.112.1), MQTT Explorer (browser-1.0.1), Radarr (5.3.6.8612), Sonarr (4.0.2.1262), Network UPS Tools (0.13.0), ESPHome (2024.2.2), Prowlarr NAS (nightly-1.14.2.4318-ls127), Zigbee2MQTT (1.36.0-1), Matter Server (5.4.1), Silicon Labs Multiprotocol (2.4.4), Scrypted (18-jammy-full.s6-v0.93.0), AdGuard Home (5.0.4), Mylar3 (0.7.8), Readarr (0.3.20.2452), Calibre (7.6.0), Studio Code Server (5.15.0), InfluxDB (5.0.0), Grafana (9.2.0), qBittorrent (4.6.3-4), rtlamr2mqtt (2.3.4), Piper (1.5.0), WeatherFlow to MQTT (3.2.2)
Husqvarna Automower
can_reach_server ok
Dashboards
dashboards 5
resources 37
views 31
mode storage
Recorder
oldest_recorder_run February 13, 2024 at 10:41 PM
current_recorder_run March 13, 2024 at 10:56 AM
estimated_db_size 4616.44 MiB
database_engine mysql
database_version 10.6.12

Checklist

  • I have filled out the issue template to the best of my ability.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This issue is not a duplicate issue of currently previous issues..

Describe the issue

After changing some properties during a 'reconfigure' and saving, all the entities end up becoming unavailable.

Reproduction steps

  1. Change some configuration on an existing cover
  2. Hit save
  3. all devices show unavailable
    ...

Diagnostics dump

Logger: homeassistant.config_entries
Source: config_entries.py:672
First occurred: 2:10:36 PM (1 occurrences)
Last logged: 2:10:36 PM

Error unloading entry Tilt Great Room Blinds for switch
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 672, in async_unload
result = await component.async_unload_entry(hass, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/switch/init.py", line 105, in async_unload_entry
return await component.async_unload_entry(entry)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 198, in async_unload_entry
raise ValueError("Config entry was never loaded!")
ValueError: Config entry was never loaded!

Default Position

What version of Adaptive Cover are you using?

1.1.2

What version of Home Assistant are you using?

2024.4.3

Checklist

  • I have filled out the issue template to the best of my ability.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This issue is not a duplicate issue of currently previous issues..

Describe the issue

Don't know if this is an issue or correct, but the default position is 1% and it's not possible to set it to 0

Reproduction steps

Try set default position to 0%

Diagnostics dump

No response

Bug In Reset Manual Override in 1.1.0-b3

System Health details

System Information

version core-2024.3.1
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.12.2
os_name Linux
os_version 6.6.20-haos
arch x86_64
timezone America/Denver
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 5000
Installed Version 1.34.0
Stage running
Available Repositories 1414
Downloaded Repositories 41
AccuWeather
can_reach_server ok
remaining_requests 19
Home Assistant Cloud
logged_in true
subscription_expiration December 28, 2024 at 5:00 PM
relayer_connected true
relayer_region us-east-1
remote_enabled false
remote_connected false
alexa_enabled false
google_enabled false
remote_server us-east-1-2.ui.nabu.casa
certificate_status ready
instance_id e4c3b0fc2d6345dd91513a760ef8ba51
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 12.1
update_channel stable
supervisor_version supervisor-2024.04.0
agent_version 1.6.0
docker_version 24.0.7
disk_total 196.2 GB
disk_used 120.6 GB
healthy true
supported true
board ova
supervisor_api ok
version_api ok
installed_addons Samba share (12.3.1), Terminal & SSH (9.13.0), Mosquitto broker (6.4.0), Samba Backup (5.2.0), HA Command Center (0.6.0), Z-Wave JS UI (3.4.2), Check Home Assistant configuration (3.11.0), Studio Code Server (5.15.0), NGINX Home Assistant SSL proxy (3.9.0), MariaDB (2.6.1), phpMyAdmin (0.9.1), InfluxDB (5.0.0), RTSP Simple Server Add-on (v0.17.6), ESPHome (2024.3.2), eufy-security-ws (1.8.0-2), Node-RED (17.0.11)
Dashboards
dashboards 8
resources 26
views 64
mode storage
Recorder
oldest_recorder_run March 2, 2024 at 3:46 PM
current_recorder_run April 13, 2024 at 8:47 AM
estimated_db_size 4252.48 MiB
database_engine mysql
database_version 10.6.12

Checklist

  • I have filled out the issue template to the best of my ability.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This issue is not a duplicate issue of currently previous issues..

Describe the issue

In the new feature I have the Toggle Control off for a particular shade, the expectation is that any manual override doesn't cause the automation to trigger if it's disabled in the first place. This might be how it is intended to work, but intuitively I would expect that manual override does nothing when it expires if the automation is disabled in the first place.

On a side note: the manual override is a fantastic feature, these changes are really providing a lot of value to the extension and I love the direction it's going! With each release this is becoming more and more central to my climate automation systems in Home Assistant. Thank you for writing this!

Reproduction steps

  1. Toggle off the automation on a device
  2. Set the curtain
  3. Click Reset Manual Override
  4. The cover will execute the automation regardless
  5. However, if you wait for manual override to expire naturally, then it works properly and doesn't attempt to run automation
    ...

Diagnostics dump

N/A

AdaptiveHorizontalCover not using `height_awning`

What version of Adaptive Cover are you using?

1.2.0

What version of Home Assistant are you using?

2024.5

Checklist

  • I have filled out the issue template to the best of my ability.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This issue is not a duplicate issue of currently previous issues..

Describe the issue

From the source code, it seems as if the config entry height_awning is not used in any way by the AdaptiveHorizontalCover.
Maybe it was used in a previous version of the calculation.py?

Reproduction steps

Searched the source code for reference to the CONF_HEIGHT_AWNING constant.

Diagnostics dump

No response

Setting maximum position by external entity

Checklist

  • I have filled out the template to the best of my ability.
  • This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
  • This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.

There are some scenarios in which I would like to dynamically set the maximum position (and potentially the default position), e.g. from an automation that restricts my horizontal awning from going out all the way with gusty weather.
As far as I can tell, there is currently no way to adjust these settings during runtime.

Describe the solution you'd like

I think the most convenient way would be to add (optional) fields for assigning entities to the maximum position configuration parameter (and maybe default position as well).

Describe alternatives you've considered

n/a

Additional context

n/a

Factor for position percentage

This is more a question than an issue: I come from germany and have this type of vertical covers, called "Rolläden": https://www.youtube.com/watch?v=_KePLmie7lE

I was wondering if the calculated percentage for positioning might not be correct for those kind of blinds, because at 50 % they are kind of fully down, but with the little wholes still letting some light through.

Could this be solved by incorporating a factor for the calculated percentage?

What is the relation of "Starting time" and "Sunrise offset"?

What version of Adaptive Cover are you using?

v1.1.2

What version of Home Assistant are you using?

2024.4.3

Checklist

  • I have filled out the issue template to the best of my ability.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This issue is not a duplicate issue of currently previous issues..

Describe the issue

Not a bug but rather a question: what is the relation of "Starting time" and "Sunrise offset"?
btw: the integration is awesome!

Reproduction steps

...

Diagnostics dump

No response

Unclear dependency handling for local development

Checklist

  • I have filled out the template to the best of my ability.
  • This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
  • This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.

I would like to debug locally the project and make some contributions, but I am finding difficult understanding how the dependencies are handled: via poetry or manually via requirements.txt?

In requirements.txt there is a version specified:

homeassistant==2024.5.0

Whereas poetry has another:

homeassistant = "2023.11.1"

Describe the solution you'd like

A guide describing the minimal steps required to bootstrap a development environment.

Describe alternatives you've considered

Using either poetry or requirements.txt to streamline the development process, since keeping both risks a conflicting situation as is happening now.

Additional context

Using VSCode on Linux, launching the provided devcontainer.json configuration, install the requirements from requirements.txt, but in the main folder the poetry.lock suggests that poetry is used.

Cannot add entry

What version of Adaptive Cover are you using?

1.2.0

What version of Home Assistant are you using?

2024.5.5

Checklist

  • I have filled out the issue template to the best of my ability.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This issue is not a duplicate issue of currently previous issues..

Describe the issue

Just add a new cover. Workflow does not complete

Reproduction steps

...

Diagnostics dump

Logger: aiohttp.server
Source: /usr/local/lib/python3.12/site-packages/aiohttp/web_protocol.py:421
First occurred: 13:07:49 (3 occurrences)
Last logged: 15:38:31

Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/aiohttp/web_protocol.py", line 452, in _handle_request
    resp = await request_handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiohttp/web_app.py", line 543, in _handle
    resp = await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiohttp/web_middlewares.py", line 114, in impl
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 92, in security_filter_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 77, in forwarded_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 26, in request_context_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 88, in ban_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiohttp_session/__init__.py", line 199, in factory
    response = await handler(request)
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 295, in auth_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/headers.py", line 32, in headers_middleware
    response = await handler(request)
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/http.py", line 73, in handle
    result = await handler(request, **request.match_info)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/decorators.py", line 71, in with_admin
    return await func(self, request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 222, in post
    return await super().post(request, flow_id)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 73, in wrapper
    return await method(view, request, data, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 122, in post
    result = await self._flow_mgr.async_configure(flow_id, data)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 368, in async_configure
    result = await self._async_configure(flow_id, user_input)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 414, in _async_configure
    result = await self._async_handle_step(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 518, in _async_handle_step
    result: _FlowResultT = await getattr(flow, method)(user_input)
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/adaptive_cover/config_flow.py", line 340, in async_step_vertical
    if user_input[CONF_MAX_ELEVATION] is not None and user_input[CONF_MIN_ELEVATION] is not None:
       ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
KeyError: 'max_elevation'

When comfort temperatures are reached I would like to have blocked everything with presence

Checklist

  • I have filled out the template to the best of my ability.
  • This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
  • This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.

For some screens/shutters I’d like to override the default presence behavior to provide daylight when at home to just close entirely by default when it is warm enough in the room. I think it would be cool to have this as a climate option. Eg. My screens provide enough daylight when at home on a sunny day in a hot room. And my blinds in the bedrooms could be closed anyway :)… I like it cold there.

Describe the solution you'd like

Switch for override to have it on in summer and off in winter.

Describe alternatives you've considered

I could fake it with presence or persons or settings… but I think it is wise climate behavior and a conscious choice for the screens/blinds.

Additional context

It is wise to keep it as cold as possible to serve the climate on warm days. To prevent the need for other cooling solutions (cooling heat pumps, airco, etc.)

Changing Setting(s) Forces Adaptive To Run Even When Disabled

What version of Adaptive Cover are you using?

1.1.3

What version of Home Assistant are you using?

2024.4.4

Checklist

  • I have filled out the issue template to the best of my ability.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This issue is not a duplicate issue of currently previous issues..

Describe the issue

If you have disabled the toggle control on an Adaptive cover and change the settings for the cover, it will run. The expectation is that the settings save and apply but the cover still honors the toggle state.

Reproduction steps

  1. Disable an Adaptive Cover
  2. Change the settings on the cover (in my case it was the left angle via Fine Tune)
  3. Submit the change
  4. Adaptive runs
    ...

Diagnostics dump

No response

Add blind spot including elevation

Checklist

  • I have filled out the template to the best of my ability.
  • This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
  • This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.

Two sides of my house have windows along the fence line and neighbor's houses on the other side. The adaptive cover settings I've configured work perfectly for when the sun is unobstructed by neighbor's houses and the fence. However, during sunrise and sunset my vertical shades on each side of my house close fully when instead, they should just open fully to let light in because it's only diffuse light coming in. The sun is fully blocked at those times.

Describe the solution you'd like

Just like there's settings to specify distance of work area from bottom of cover, need a way to specify distance of fence line or other obstruction from top of cover. Can use that measure to calculate when the sun is no longer detected outside the window.

Describe alternatives you've considered

Alternative is to have a timed automation based off of offset from sunset (maybe a couple hours before) that turns off adaptive control and fully opens the shades until sunset. I could tune this somehow with trial and error but seems inelegant to have multiple automations for this when adaptive cover is so close to perfect.

Additional context

None

Format of "Entity indicating starting time"

What version of Adaptive Cover are you using?

1.1.4

What version of Home Assistant are you using?

2024.5

Checklist

  • I have filled out the issue template to the best of my ability.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This issue is not a duplicate issue of currently previous issues..

Describe the issue

I have an input_datetime.cover_result helper, of type time that I would like to use as starting time, in this case 8:00 in the morning.

However, the integration reports the following. I think it expects something in date and time format. Wouldn't be a time format be sufficient?

Logger: custom_components.adaptive_cover
Source: helpers/update_coordinator.py:315
integration: Adaptive Cover ([documentation](https://github.com/basbruss/adaptive-cover), [issues](https://github.com/basbruss/adaptive-cover/issues))
First occurred: 09:10:27 (149 occurrences)
Last logged: 12:20:01

Unexpected error fetching adaptive_cover data
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 315, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/adaptive_cover/coordinator.py", line 229, in _async_update_data
    self.after_start_time
  File "/config/custom_components/adaptive_cover/coordinator.py", line 310, in after_start_time
    time = get_datetime_from_state(
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/adaptive_cover/helpers.py", line 39, in get_datetime_from_state
    return dt.datetime.strptime(state, "%Y-%m-%dT%H:%M:%S%z")
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/_strptime.py", line 554, in _strptime_datetime
    tt, fraction, gmtoff_fraction = _strptime(data_string, format)
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/_strptime.py", line 333, in _strptime
    raise ValueError("time data %r does not match format %r" %
ValueError: time data '08:00:00' does not match format '%Y-%m-%dT%H:%M:%S%z'

Reproduction steps

...

Diagnostics dump

No response

Changing Entity Name of Toggle When Disabled Re-Enables and Runs

What version of Adaptive Cover are you using?

1.1.3

What version of Home Assistant are you using?

2024.4.4

Checklist

  • I have filled out the issue template to the best of my ability.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This issue is not a duplicate issue of currently previous issues..

Describe the issue

Related to #142 this behavior also occurs when changing entity names (you know why I'm doing this LOL) but with the added bug that it turns on the toggle too.

Reproduction steps

  1. Set up adaptive cover
  2. Change entity of the toggle switch
    ...

Diagnostics dump

No response

Add support for see-through covers

Checklist

  • I have filled out the template to the best of my ability.
  • This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
  • This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.

When a cover is in summer mode, but the sun is not detected anymore, the cover stays closed.

Describe the solution you'd like

I would like to open the covers to illuminate the room when the sun is not pointing anymore towards the windows

Describe alternatives you've considered

I have to manually open the blinds

Additional context

This is due to the fact that I have mocked the presence sensor to always report no presence so that covers will actually calculate their position to stop the sun and not only the glare

Add Ability to Link to Weather

Checklist

  • I have filled out the template to the best of my ability.
  • This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
  • This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.

Mostly a frustration of having my smart Adaptive Cover know when there is no sun.

Describe the solution you'd like

A nice feature to have (although with the new toggle and automation it can be accomplished in other ways) would be if you could link a weather device to Adaptive Cover with an option to ignore certain weather patterns. I thought I saw this but after going through the settings I was mistaken. For instance, today is raining and snowing and the sun has yet to be seen, in which case I don't need adaptive cover yet it still ran. Since HA standardizes the major conditions it should be easy since there are only 9 or 10 conditions they summarize into and most HA compliant weather integrations honor that.

Describe alternatives you've considered

Automation + new toggle that was added to 1.1.0

Additional context

That's all folks. Great add-on, I look forward to it being a huge part of my summer heat mitigation plan to save energy!

Prioritize Outside temperature sensor over weather information

Checklist

  • I have filled out the template to the best of my ability.
  • This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
  • This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.

I have an outdoor temperature sensor that reports a more accurate value than the weather data. For the moment the weather data is prioritized over the external temperature data

Describe the solution you'd like

Prioritize the external sensor if any, over the weather data

Describe alternatives you've considered

no alternative

Additional context

no other context

Add minimum position for covers

Checklist

  • I have filled out the template to the best of my ability.
  • This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
  • This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.

When sun is detected and weather is summer, the covers close completely even though it's not necessary to close it completely

Describe the solution you'd like

A minimum position value that works the same as the maximum position that allows a cover to close at a max position.

Describe alternatives you've considered

Openning manually

Additional context

No context

Automation switch is turned on when HA restarts -> Update: Blinds are tilted when HA restarts

System Health details

System Information

version core-2024.4.3
installation_type Home Assistant Container
dev false
hassio false
docker true
user root
virtualenv false
python_version 3.12.2
os_name Linux
os_version 4.4.302+
arch x86_64
timezone Europe/Berlin
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 5000
Installed Version 1.34.0
Stage running
Available Repositories 1469
Downloaded Repositories 12
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Dashboards
dashboards 3
resources 3
views 11
mode storage
Recorder
oldest_recorder_run 8. April 2024 um 05:21
current_recorder_run 18. April 2024 um 07:49
estimated_db_size 507.46 MiB
database_engine sqlite
database_version 3.44.2

Checklist

  • I have filled out the issue template to the best of my ability.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This issue is not a duplicate issue of currently previous issues..

Describe the issue

I have the issue that on a restart of HA all automation switches of the blinds are turned on. So even if I turn them off manually or via automation (winter, no sun, etc), on a HA restart they are always turned back on.

That has for example the effect that my tilted blinds are moving a bit even when in opened position and thus doors can not be opened or blinds are potentially damaged by the doors (user does not notice if blind is only 2% closed, but door will bump against the blind once opened).

Reproduction steps

  1. set up cover automation (without climate mode - just basic)
  2. turn off switch that controls automation
  3. restart Home Assistant
  4. Switch is turned back on

Diagnostics dump

No response

EDIT: With updating to 1.1.0, the switches remain off an HA restart, but the covers will tilt on a restart to the latest calculated position from the automation sensor.

Detected blocking call to import_module inside the event loop

What version of Adaptive Cover are you using?

1.1.4

What version of Home Assistant are you using?

core-2024.5.0

Checklist

  • I have filled out the issue template to the best of my ability.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This issue is not a duplicate issue of currently previous issues..

Describe the issue

See dump

Reproduction steps

...

Diagnostics dump

I found this in the logs ...

Logger: homeassistant.util.loop
Source: util/loop.py:99
First occurred: 16:09:56 (1 occurrences)
Last logged: 16:09:56


Detected blocking call to import_module inside the event loop by custom integration 'adaptive_cover' at custom_components/adaptive_cover/sun.py, line 26: times = pd.date_range( (offender: /usr/local/lib/python3.12/site-packages/pandas/compat/_optional.py, line 132: module = importlib.import_module(name)), please create a bug report at https://github.com/basbruss/adaptive-cover/issues

Bidirectional Tilted Blinds should start at 50% not 0% for some devices

System Health details

System Information

version core-2023.10.2
installation_type Home Assistant Container
dev false
hassio false
docker true
user root
virtualenv false
python_version 3.11.5
os_name Linux
os_version 6.1.57-1-lts
arch x86_64
timezone America/Los_Angeles
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 5000
Installed Version 1.33.0
Stage running
Available Repositories 1321
Downloaded Repositories 39
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Dashboards
dashboards 3
resources 21
views 13
mode storage
Recorder
oldest_recorder_run October 20, 2023 at 12:05 AM
current_recorder_run October 26, 2023 at 2:07 PM
estimated_db_size 379.03 MiB
database_engine sqlite
database_version 3.41.2

Checklist

  • I have enabled debug logging for my installation.
  • I have filled out the issue template to the best of my ability.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This issue is not a duplicate issue of currently previous issues..

Describe the issue

Thank you for creating this integration, it makes it as easy as possible to deploy these calculations to a sensor!

Currently, when using tilted blinds in Bidirectional mode with my SwitchBot Tilt devices, they start at 0% (Closed down) and move to a peak of 50% (fully open) when the sun is the strongest. After that, they move back down to 0% (fully closed down) as the sun moves off of them.

What I would like to have an option for is to have this occur in the upper range of the bidirectional mode. So start at 50%, peak at 100% when the blinds need to be fully closed (facing up) as they are getting a lot of sun, and then move back to 50% (open) as the sun is not hitting them as much.

Would it be possible for you to implement this as a setting if it is not a bug for all users?

Thank you!

Reproduction steps

  1. Setup a Bidirectional Tilted blind
  2. Assign the integration to a SwitchBot blind tilt device.
  3. Observe (Image shows me changing configuration settings, see after 6 AM on purple line or the descent of the teal line around 12pm on the previous day)
    image

Debug logs

N/A

Diagnostics dump

No response

Manual override mark isn't deleted when switch turns off

System Health details

Checklist

  • I have filled out the issue template to the best of my ability.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This issue is not a duplicate issue of currently previous issues..

Describe the issue

When the manual override switch is turned off I expect that all manual marks are reset.

Reproduction steps

...

Diagnostics dump

No response

Setting sensors for forced opening (emergency override)

Checklist

  • I have filled out the template to the best of my ability.
  • This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
  • This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.

I have some local sensors that I want to use to:

  • force an immediate full opening of the awning when one of the sensors is triggered
  • prevent the awning from closing again for a while after one of the sensors was triggered.

You can think of a local binary sensors for 'too much wind', 'rain' warnings or other conditions, that complement the online weather services.

Describe the solution you'd like

Adding additional options, in addition to the existing 'manual override', but for these emergency triggers:

  • An additional option that allows setting a list of (multiple) sensors that would trigger the awning to open and prevent the awning from closing.
  • Preferably an option to set the amount of time in which new triggers to close the awning automatically would be ignored (similar to the manual override option)
  • Manual control to return to a safe state (up button for an awning) should always stay operational.
  • Maybe a switch to set if manual control to a non-safe state should still be possible.

Describe alternatives you've considered

I considered using the manual override options, but I think it would be beneficial to separate these emergency opening conditions and regular manual override.

Additional context

n/a

Add an offset for minimum cover position

Checklist

  • I have filled out the template to the best of my ability.
  • This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
  • This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.

I have this type of rollers throughout the house, where the horizontal bars have small gaps when the roller is not fully closed.
What this means in practice is that the rollers touch the bottom of the window around 10-20% position, effectively blocking sunlight and messing the calculations of this integration.

image

Describe the solution you'd like

A configuration option to offset the minimum cover position.

For example, if the roller is closed at 10%, then the range 10%-100% is mapped linearly to the cover position.

Describe alternatives you've considered

Currently I use cover templates with the required min offsets, then assign those covers to adaptive-cover:

cover:
  - platform: template
    covers:
      mapped_cover:
        friendly_name: "Mapped Cover"
        position_template: >
          {% set min = 15 %}
          {% set x = state_attr('cover.real_cover', 'current_position') %}
          {% if x <= min %}
            0
          {% else %}
            {{ ((x - min) / (100 - min) * 100) | int }}
          {% endif %}
        set_cover_position:
          service: cover.set_cover_position
          data_template:
            entity_id: cover.real_cover
            position: >
              {% set min = 15 %}
              {% set y = position %}
              {% if y <= 0 %}
                0
              {% else %}
                {{ (y * (100 - min) / 100 + min) | int }}
              {% endif %}

Additional context

This issue was initially mentioned in #129, I created a separate feature request as instructed.

Add strategy for see-through blinds to always close fully in summer mode.

What version of Adaptive Cover are you using?

1.1.4

What version of Home Assistant are you using?

2024.5.3

Checklist

  • I have filled out the issue template to the best of my ability.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This issue is not a duplicate issue of currently previous issues..

Describe the issue

I have setup a couple of covers at home but they act weird.
Let's take one example of a store
Control Method: summer
Cover Position: 4%
End Sun: In 5 hours
Manual Override: Not running
Start Sun: 5 hours ago
Sun Infront : Detected

Climate mode activated, presence mode not activated and external temperature activated.
The temperature of the internal sensor is 24C and the minimal temperature is 19 and maximal temperature is 21C
The external temperature is 24.5C
The weather is sunny.

Hence I don't understand why the cover remains open at 4%, for me it should be fully closed.

Reproduction steps

Setup an automatic cover with an external temperature sensor, internal temperature sensor, weather.
Wait for the cover to be exposed to the sun, weather sunny, high temperature inside and outside (above the max range of the confort temperature)
Expectation: Cover should be closed
Actual: Cover is opened at 4%

Diagnostics dump

No response

Combine indoor and outdoor temperatures

Checklist

  • I have filled out the template to the best of my ability.
  • This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
  • This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.

The integration only considers either indoor or outdoor temperatures

Describe the solution you'd like

It could be useful to have indoor comfort temperatures and outside temperatures at the same time to be able to decide if a cover should be auto-adapted. For example, the indoor temperature is above the maximum threshold but the outside temperature is quite low which in turn could mean there isn't as much glare to be concerned about.

Describe alternatives you've considered

Additional context

Documentation is missing config parameters

What version of Adaptive Cover are you using?

1.2.0

What version of Home Assistant are you using?

2024.5.5

Checklist

  • I have filled out the issue template to the best of my ability.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This issue is not a duplicate issue of currently previous issues..

Describe the issue

  • what is minimum/maximum elevation of the sun in the configuration flow? I couldn't find anything in the docs.

  • Same for "Setup blindspot"? in the configuration flow.

  • I suggest renaming switch.{type}_manual_override_{name} to switch.{type}_manual_override_detection_{name} (at least in lovelace). If turned on, the switch does not override anything. It does turn on override detection.

  • Maybe add a FAQ section to the docs? Or open the discussion board? I have some candidates:

    • Can I assume that the following priorities exist? Any set parameter takes precedence over a lower one.
      1. entity of starting time
      2. starting time
      3. sunset (+ offset)
    • any configuration option for the following use case: wife changes a cover manually. How to turn automation off until next day? Particularly not after the short 15min of "Duration of manual override" which drives wife mad...

Reproduction steps

...

Diagnostics dump

N/A

Minimum Position in Basic Mode

Checklist

  • I have filled out the template to the best of my ability.
  • This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
  • This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.

I have the problem that my roller shutters have little horizontal gaps inbetween each segment, that only close when the bottom of the shutter reaches the bottom of my window.

The issue that arises with this ist that when my shutter is at around 70% it‘s already at the bottom, the remaining 30% are just for closing the little gaps inbetween the panels.

Describe the solution you'd like

Being able to specify a minimum position that applies only to the basic mode that the integration considers fully closed would solve my issue pretty easily.

Describe alternatives you've considered

I don’t know, I believe my primary solution would be good and also quite easy to implement.

Additional context

A picture of the type of roller shutter I have: https://images.app.goo.gl/oGMyj3zFpetzHSum7

Error message calculation some Azimuths?

System Health details

System Information

version core-2023.11.0
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.11.6
os_name Linux
os_version 6.1.59
arch x86_64
timezone Europe/Berlin
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4890
Installed Version 1.33.0
Stage running
Available Repositories 1322
Downloaded Repositories 8
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 11.1
update_channel stable
supervisor_version supervisor-2023.10.1
agent_version 1.6.0
docker_version 24.0.6
disk_total 30.8 GB
disk_used 15.2 GB
healthy true
supported true
board ova
supervisor_api ok
version_api ok
installed_addons Studio Code Server (5.13.0), Advanced SSH & Web Terminal (15.1.0), Node-RED (15.0.0)
Dashboards
dashboards 3
resources 7
views 8
mode storage
Recorder
oldest_recorder_run October 22, 2023 at 16:25
current_recorder_run November 1, 2023 at 21:00
estimated_db_size 5249.68 MiB
database_engine sqlite
database_version 3.41.2

Checklist

  • I have enabled debug logging for my installation.
  • I have filled out the issue template to the best of my ability.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This issue is not a duplicate issue of currently previous issues..

Describe the issue

Hi,
and thanks for this great work ❤️

I created 4 sensors for horizontal blinds.

  • north
  • east
  • south
  • west

For each I calculated the azimuth by using the compass from open streetmap. However, I realized that for the north-facing side (Azimuth 15) and west-facing side (Azimuth 298) I do not receive values and the log shows errors. East and south working fine.

Screenshots

2023-11-01 12_46_48-Settings – Home Assistant
2023-11-01 12_47_09-Dashboards – Home Assistant
2023-11-01 12_47_59-OpenStreetMap Compass _ Plot and Record OpenStreetMap Routes
2023-11-01 21_15_54-Developer tools – Home Assistant

Anything I am doing wrong? 🤔

Thank you!

Reproduction steps

  1. create new sensor, horizontal blinds, Azimuth 15
  2. restart HA
  3. watch the state: it shows unavailable

Debug logs

Log File:
**********

2023-11-01 21:00:27.957 ERROR (MainThread) [homeassistant.components.sensor] Error while setting up adaptive_cover platform for sensor
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 367, in _async_setup_platform
await asyncio.gather(*pending)
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 507, in async_add_entities
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 752, in _async_add_entity
await entity.add_to_platform_finish()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1022, in add_to_platform_finish
await self.async_added_to_hass()
File "/config/custom_components/adaptive_cover/sensor.py", line 101, in async_added_to_hass
self.async_update_state()
File "/config/custom_components/adaptive_cover/sensor.py", line 106, in async_update_state
self._cover_data.update()
File "/config/custom_components/adaptive_cover/sensor.py", line 221, in update
self.start = params.solar_times()[0]
^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/adaptive_cover/calculation.py", line 65, in solar_times
return solpos[frame].index[0].to_pydatetime(), solpos[frame].index[-1].to_pydatetime()
~~~~~~~~~~~~~~~~~~~^^^
File "/usr/local/lib/python3.11/site-packages/pandas/core/indexes/base.py", line 5365, in __getitem__
return getitem(key)
^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pandas/core/arrays/datetimelike.py", line 376, in __getitem__
result = cast("Union[Self, DTScalarOrNaT]", super().__getitem__(key))
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pandas/core/arrays/_mixins.py", line 276, in __getitem__
result = self._ndarray[key]
~~~~~~~~~~~~~^^^^^
IndexError: index 0 is out of bounds for axis 0 with size 0

Diagnostics dump

No response

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.