-
-
Notifications
You must be signed in to change notification settings - Fork 2
Understanding Control Decisions

Humidity Intelligence is built around one calm idea: one explainable control decision per evaluation cycle.
It replaces competing automation chains with one visible environmental controller. It reads the configured telemetry, checks gates and risks, resolves priority, and exposes the reason so you can see why the selected state won.
Each cycle works like this:
- check global gates
- check high-priority safety and risk lanes
- check zone demand
- check air-quality demand
- fall back to normal
The first valid lane wins. Lower-priority lanes wait.
The current design contract preserves this order:
- carbon-monoxide emergency
- humidity danger
- mould danger
- mould risk
- condensation danger
- condensation risk
- zone 1
- zone 2
- air quality
- normal
This is why higher-priority safety, moisture, gate, or alert states take the lead before normal comfort or air-quality response.
Global gates can suppress lower-priority runtime truth.
Examples:
- time gate outside the allowed window
- presence or alarm state says the home is away
- manual pause is active
- override behavior is active
When a gate takes authority, the UI is expected to show gate truth so the visible reason matches the active decision.
In v2.0.12, Manual cancels pending ordinary output work and hands control back without
resetting configured fans, switches, humidifiers, or visual alerts. Humidifier
reconciliation reports observed-only manual_hold; it does not claim an HI command.
Turning Manual off restores normal AUTO ownership. The reason field explains the
handover and how to return to AUTO.
CO emergency remains the sole ventilation exception while Manual is active, using only configured emergency ventilation outputs. Certified carbon-monoxide alarms remain the primary detection and alerting system.
Humidity, mould, and condensation alerts are useful only when HI can explain where the problem came from.
The engine tries to resolve:
- source sensor
- room
- zone
- configured output path
When that context is incomplete, HI can degrade safely and explain the missing mapping before any output path takes authority.
Humidity readings are interpreted relative to the active target profile.
A reading that is acceptable in summer may be risky for a colder winter envelope. HI uses target-relative states such as:
- below target
- in target
- above target
- high risk
That keeps the reason panel closer to how the home actually behaves across seasons.
Air-quality response can matter, especially for cooking, occupancy, particles, VOCs, or stale air. Carbon-monoxide emergency and moisture-risk alert lanes keep priority when those conditions are active.
If AQ looks delayed, check whether a higher-priority lane or global gate is active.
Humidifier lanes remain independent from the selected ventilation lane. That keeps dry air correction from being hidden inside the same lane decision as extraction, ventilation, or air-quality response.
The reason panel should answer:
- what lane is active
- what condition selected it
- what source or context matters
- whether a gate is blocking control
- whether anything is degraded or unavailable
If the reason panel, dashboard chips, and backend state disagree, report it as a UI truth consistency issue.
V2 reason presentation comes from the existing Air Control Reason entity's additive
display_reason attribute. Exact schema hi.reason.v1 carries a backend-authored
headline and ordered lines. Each line has one role and one truth, so observed cause,
selected action, request evidence, and observed output state remain distinct. The
card validates and escapes that final text; it does not rebuild decisions from
frontend logic. If the exact contract is absent or invalid, the complete panel falls
back to the technical full_reason, usable entity state, then Reason unavailable.
A humidifier Requested chip means effective demand, not a completed service call,
observed output, or measured moisture. On means Home Assistant reports the output
on; physical moisture production is still not measured.
These editorial comparisons use refreshed 2.0.10-beta.7 UI evidence to show the
presentation change. They are not continuous playback records and do not change the
deterministic decision underneath.

The alert view now connects the trigger, resolved zone, selected response, and fixed priority in calm natural language.

The general reason view separates what happened, why it happened, and what HI is doing while preserving backend-owned truth.
This page explains the current public model. Runtime behavior is defined by tracked repository source and the public architecture contract.
| Previous | Next |
|---|---|
| Configuration Walkthrough | Why Environmental Stability Matters |