diff --git a/README.md b/README.md index 95f2e49..cb8ebfe 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,29 @@ This Custom-Integration provides sensors for vertical and horizontal blinds base This integration builds upon the template sensor from this forum post [Automatic Blinds](https://community.home-assistant.io/t/automatic-blinds-sunscreen-control-based-on-sun-platform/) +- [Adaptive Cover](#adaptive-cover) + - [Features](#features) + - [Installation](#installation) + - [HACS (Recommended)](#hacs-recommended) + - [Manual](#manual) + - [Setup](#setup) + - [Cover Types](#cover-types) + - [Modes](#modes) + - [Basic mode](#basic-mode) + - [Climate mode](#climate-mode) + - [Climate strategies](#climate-strategies) + - [Variables](#variables) + - [Common](#common) + - [Vertical](#vertical) + - [Horizontal](#horizontal) + - [Tilt](#tilt) + - [Automation](#automation) + - [Climate](#climate) + - [Entities](#entities) + - [Features Planned](#features-planned) + - [Simulation](#simulation) + - [Blueprint (deprecated since v1.0.0)](#blueprint-deprecated-since-v100) + ## Features - Individual service devices for `vertical`, `horizontal` and `tilted` covers @@ -19,25 +42,24 @@ This integration builds upon the template sensor from this forum post [Automatic - **Climate Mode** - - Weather condition based operation - - Presence based operation - - Switch to toggle climate mode - - Sensor for displaying the operation modus (`winter`,`intermediate`,`summer`) + - 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 - + - 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. +Add as custom repository to HACS. Search and download Adaptive Cover within HACS. Restart Home-Assistant and add the integration. @@ -54,6 +76,14 @@ Restart Home-Assistant and add the integration. 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](https://osmcompass.com/). +## Cover Types + +| | Vertical | Horizontal | Tilted | +|----------|----------|------------|---------| +| | ![alt text](images/image.png) | ![alt text](images/image-2.png) | ![alt text](images/image-1.png) | +| **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. @@ -93,13 +123,14 @@ This mode calculates the position based on extra parameters for presence, indoor This mode is split up in two types of strategies; [Presence](https://github.com/basbruss/adaptive-cover?tab=readme-ov-file#presence) and [No Presence](https://github.com/basbruss/adaptive-cover?tab=readme-ov-file#no-presence). #### Climate strategies + - **No Presence**: Providing daylight to the room is no objective if there is no presence. - - **Below minimal comfort temperature**: + - **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**: + - **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. @@ -108,6 +139,70 @@ The objective is to reduce glare while providing daylight to the room. All calcu If you added a weather entity than it will only use the above calculations if the weather state corresponds with the existence of direct sun rays. These states are `sunny`,`windy` and `partlycloudy`. 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 defect from the above approach if the inside temperature is above the maximum comfort temperature. Than the slats will be positioned at 45 degrees as this is [founded optimal](https://www.mdpi.com/1996-1073/13/7/1731). +## 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](https://osmcompass.com/) | +| 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 | +| 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 | +| Window Height | 2.1 | 0.1-6 | Height of the window when fully extended | +| 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 | 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 | + +### 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 | + ## Entities The integration adds dynamically based on the used features multiple entities. @@ -132,7 +227,6 @@ When climate mode is setup you will also get these entities: | `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](https://github.com/basbruss/adaptive-cover/blob/main/images/entities.png) ## Features Planned @@ -145,6 +239,7 @@ When climate mode is setup you will also get these entities: - Algorithm to control radiation and/or illumination ### Simulation + ![combined_simulation](custom_components/adaptive_cover/simulation/sim_plot.png) ### Blueprint (deprecated since v1.0.0) diff --git a/images/image-1.png b/images/image-1.png new file mode 100644 index 0000000..09bef2d Binary files /dev/null and b/images/image-1.png differ diff --git a/images/image-2.png b/images/image-2.png new file mode 100644 index 0000000..569e0a3 Binary files /dev/null and b/images/image-2.png differ diff --git a/images/image.png b/images/image.png new file mode 100644 index 0000000..9e60e75 Binary files /dev/null and b/images/image.png differ