-
Notifications
You must be signed in to change notification settings - Fork 14
Climate Mode
β οΈ Start with Basic Mode First Climate mode adds significant complexity with temperature thresholds, presence detection, and weather conditions. We recommend configuring Basic mode first and ensuring it works correctly before enabling Climate mode features.Temperature Unit Consistency Required: All temperature sensors must use the same unit system (Β°C or Β°F). The integration does not automatically convert between units. See Known Limitations for details.
Climate mode enables the Climate handler (priority 50), which sits above glare zone (45) and solar (40) in the pipeline. It uses indoor temperature, presence, weather, and light sensors to choose a strategy. Decisions are made in priority order; the first matching condition wins.
Fall-through on comfortable sunny days: When someone is home, the temperature is within the comfortable range, and it's a sunny day, Climate has no heating or cooling work to do and deliberately returns no result. The pipeline falls through to the Glare Zone handler (priority 45), which lowers the blind further if a floor zone is in the sun's path, and then the Solar handler (priority 40) for standard sun-tracking. This means sun-position calculations live in a single place rather than being duplicated inside Climate. The Decision Trace will show climate: matched=False, reason=deferred glare-control to solar/glare handlers in this case.
graph TD
A[("fa:fa-sun Sun data")] --> PIPE
subgraph PIPE ["Override Pipeline (highest priority wins)"]
direction TB
P1["Force override active?"] -->|Yes| R_FORCE["Fixed position"]
P1 -->|No| P2["Weather override active?"]
P2 -->|Yes| R_WEATHER["Safe retract position"]
P2 -->|No| P3["Manual override active?"]
P3 -->|Yes| R_MANUAL["Hold position"]
P3 -->|No| P4["Motion timeout active?"]
P4 -->|Yes| R_MOTION["Default position"]
P4 -->|No| P5["Cloud suppression active?\n(lux / irradiance / weather)"]
P5 -->|Yes| R_CLOUD["Default position"]
P5 -->|No| MODE{"Climate mode\nenabled?"}
end
MODE -->|No| SOLAR
MODE -->|Yes| CLIMATE
subgraph CLIMATE ["Climate handler (priority 50)"]
direction TB
CA{"Presence\ndetected?"}
CA -->|Yes / no sensor| CP1{"Winter?\n(temp < min comfort\n+ sun in window)"}
CP1 -->|Yes| CP_W["100% β fully open\n(solar heating)"]
CP1 -->|No| CP1B{"Winter insulation?\n(temp < min comfort,\nsun not in window,\ninsulation enabled)"}
CP1B -->|Yes| CP_I["0% β fully closed\n(insulation)"]
CP1B -->|No| CP2{"Low light?\n(lux/irradiance below\nthreshold or not sunny)"}
CP2 -->|Yes| CP_L["Default position"]
CP2 -->|No| CP3{"Summer?\n(temp > max comfort\n+ transparent blind)"}
CP3 -->|Yes| CP_S["0% β fully closed\n(heat blocking)"]
CP3 -->|No| CP_G(["No result β defer to\nGlare Zone / Solar"])
CA -->|No| CN1{"Sun in\nfield of view?"}
CN1 -->|No| CN_INS{"Winter insulation?\n(temp < min comfort\n+ insulation enabled)"}
CN_INS -->|Yes| CN_I["0% β fully closed\n(insulation)"]
CN_INS -->|No| CN_D["Default position"]
CN1 -->|Yes| CN_LL{"Low light?\n(lux/irradiance below\nthreshold or not sunny)"}
CN_LL -->|Yes| CN_LD["Default position"]
CN_LL -->|No| CN2{"Summer?\n(temp > max comfort)"}
CN2 -->|Yes| CN_S["0% β fully closed"]
CN2 -->|No| CN3{"Winter?\n(temp < min comfort)"}
CN3 -->|Yes| CN_W["100% β fully open"]
CN3 -->|No| CN_D2["Default position"]
end
CP_G --> GLARE
subgraph GLARE ["Glare Zone handler (priority 45, vertical blinds only)"]
direction TB
G1{"Active zone\nin sun's path?"}
G1 -->|Yes| G2["Lower blind to\nshield floor zone"]
G1 -->|No| G3(["No result β defer to Solar"])
end
G3 --> SOLAR
GLARE --> SOLAR
subgraph SOLAR ["Solar handler (priority 40)"]
direction TB
B1{"Sun in field\nof view?"}
B1 -->|Yes| B2["Calculated sun-tracking position"]
B1 -->|No| B3["Default / sunset position"]
end
-
With Presence (or no presence entity configured): The objective is to reduce glare while providing daylight. Conditions are evaluated in this priority order:
- Winter heating: Indoor temperature below the minimum comfort threshold and sun in front of the window β open to 100% for passive solar heating. Takes priority over all other conditions.
- Winter insulation: Indoor temperature below the minimum comfort threshold, sun is not in front of the window, and the "Close for insulation" option is enabled β close to 0% to retain heat.
- Low light: Light levels are low (lux/irradiance below threshold) or weather is not sunny β default position to maximise daylight. Applies in all seasons, including summer.
- Summer cooling: Indoor temperature above the maximum comfort threshold and the "Transparent blind" option is enabled β close to 0% to block heat while still allowing diffused light through sheer fabric. If "Transparent blind" is off (opaque blind), this step is skipped and the calculated sun-tracking position is used instead.
-
Glare control / fall-through: All other conditions (comfortable temperature, sunny day) β Climate returns no result and the pipeline falls through to Glare Zone (priority 45, if a protected floor zone is in the sun's path) and then Solar (priority 40, for standard sun-tracking position). This keeps sun-position calculations in a single place rather than duplicating them inside Climate.
Behaviour change (v2.18.0, #231): Before this fix, the climate handler returned a solar-tracking position for the glare-control case, which prevented the pipeline from ever reaching the Glare Zone handler. Glare zones configured alongside climate mode with presence detection now take effect as documented.
-
Without Presence: The objective is energy efficiency; glare and daylight are not considered.
- Sun in front of window and low light (lux/irradiance below threshold or not sunny) β default position
- Sun in front of window and summer (temp > max comfort) β 0% (block heat)
- Sun in front of window and winter (temp < min comfort) β 100% (gain solar heat)
- Sun not in window, winter, and "Close for insulation" enabled β 0% (retain heat)
- Otherwise β default position
Transparent blind: A "transparent blind" is a see-through cover: sheer curtains, light-filtering roller shades, or any fabric you can see through. Enable this option if your blind lets light through even when fully closed. With it enabled, the integration closes the blind fully in summer to block solar heat gain while still allowing diffused light into the room. Leave it disabled for blackout blinds, wooden blinds, or any opaque cover; those already block direct sun at the calculated position without needing to close fully.
Note: The "Transparent blind" option only affects the With Presence path in Climate mode during summer conditions. The Without Presence path always closes to 0% in summer regardless of this setting.
Weather integration: A weather entity can be configured to identify sunny conditions (default states: sunny, windy, partlycloudy, cloudy, customisable). Winter heating (priority 1) activates regardless of weather or light levels.
Tilted blinds: Follow the same strategies, with these differences in summer mode: slats are set to 45Β° (found optimal for heat blocking while maintaining some light) when presence is detected, and to 0% (fully closed) when no presence is detected.
π Home Β· β¨ Features Β· π° What's New
π Getting Started
- Installation
- Migrating from Custom Repository
- Migrating from Adaptive Cover
- First-Time Setup
- Cover Types
π§ Core Concepts
π Cover Types
βοΈ Configuration
- Sun Tracking
- Position
- Glare Zones
- Automation
- Custom Position
- Force Override
- Weather Safety
- Climate
- Blindspot
- Summary Screen
- Debug & Diagnostics
π Entities & Services
- Entities
- Proxy Cover Entity
- Position Verification
- My Position Support (Somfy RTS)
- Runtime Configuration Services
π οΈ Operations
π§ Advanced Use Cases
- Dynamic Temperature Thresholds
- Dynamic Tracking Window
- Bedroom Sleep Mode
- Handling Variable Cloud Cover
- Venetian Tilt-Only on Overcast Days
π¨ Dashboard
π§ͺ Testing & Simulation
π Reference
π©βπ» For Developers