Skip to content

How It Decides

Jason Rhubottom edited this page May 7, 2026 · 2 revisions

How It Decides

Every cover position decision runs through a shared override pipeline of ten handlers evaluated in priority order. The highest-priority handler that produces a result wins the cover position. Lower-priority handlers still run but don't claim the position, so their diagnostic sensors stay populated. Two calculation modes, Basic and Climate, decide what the solar and climate handlers compute.

Override pipeline

Priority Override Behavior
100 Force override Binary sensor(s) force cover to a fixed position (or a minimum floor if minimum position mode is enabled)
90 Weather override Wind speed, rain rate, or severe-weather binary sensors exceed configured thresholds; covers retract to a safe position (or minimum floor), bypassing automatic control
80 Manual override If the user physically moved the cover, automatic control is paused
1–99 Custom position Up to 4 configurable binary-sensor/position pairs; when a sensor is on, the cover moves to the configured position (or uses it as a minimum floor). Each slot has an individual priority (default 77)
75 Motion timeout If all occupancy sensors report no motion for the configured timeout, cover returns to default position
60 Cloud suppression Lux, irradiance, cloud coverage, or weather state indicates no direct sun; solar tracking is skipped and cover returns to default
50 Climate Active when Climate mode is enabled: applies temperature/presence/light strategy (see below); defers sun-tracking decisions to glare zone and solar handlers
45 Glare zone Vertical blinds only: sun would reach a named floor zone; cover extends further than solar tracking alone to shield that area
40 Solar Active when sun is within the window's field of view and elevation limits: uses calculated sun-tracking position
0 Default Final fallback: returns the configured default position (or sunset position if applicable)

Sensor priority: irradiance, lux, and weather

When irradiance, lux (brightness), and weather sensors are all configured, they don't blend into a single score. They feed different pipeline handlers and are evaluated by priority:

  1. Severe weather (priority 90): Wind Speed Sensor, Rain Rate Sensor, Is Raining Sensor, Is Windy Sensor, and Severe Weather Sensors feed the Weather Override handler. OR logic: any one tripping retracts the cover to Weather Override Position, regardless of what lux or irradiance report.
  2. Cloud suppression (priority 60): Lux Entity + Lux Threshold, Irradiance Entity + Irradiance Threshold, Cloud Coverage Entity + Cloud Coverage Threshold, and the Weather Entity state (matched against the configured "sunny" condition list) feed this handler. OR logic again: if any of these indicates it isn't sunny enough, solar tracking is skipped and the cover goes to the default (or sunset) position.
  3. Solar (priority 40): runs only when every cloud-suppression input agrees it's sunny and the sun is within the window's field of view.

Three things worth noting:

  • The weather entity is used in two places. Its state ("sunny"/"cloudy"/…) feeds cloud suppression at 60, while the severe-condition sensors (wind, rain, is-raining, is-windy, severe) feed the weather override at 90. They are configured separately.
  • Cloud suppression is OR, not AND across its inputs. If you've wired up both a lux sensor and an irradiance sensor, either one falling below its threshold will suppress solar tracking. Set thresholds accordingly, or leave one unconfigured if you don't want it to gate.
  • Sensor-change responsiveness (v2.17.5): lux, irradiance, cloud coverage, and outside-temperature sensors now trigger an immediate re-evaluation when their state changes. Previously the coordinator only re-evaluated on the next scheduled tick (every 5 minutes), which made cloud suppression noticeably laggy in variable conditions.

Clone this wiki locally