Skip to content

Understanding Control Decisions

Senyo edited this page Jun 7, 2026 · 7 revisions

Understanding Control Decisions

Humidity Intelligence is built around one calm idea: one explainable control decision per evaluation cycle.

It does not run a loose pile of competing Home Assistant automations. It reads the configured telemetry, checks gates and risks, resolves priority, and exposes the reason so you can see why the selected state won.

The Short Version

Each cycle works like this:

  1. check global gates
  2. check high-priority safety and risk lanes
  3. check zone demand
  4. check air-quality demand
  5. fall back to normal

The first valid lane wins. Lower-priority lanes wait.

Priority Order

The current design contract preserves this order:

  1. carbon-monoxide emergency
  2. humidity danger
  3. mould danger
  4. mould risk
  5. condensation danger
  6. condensation risk
  7. zone 1
  8. zone 2
  9. air quality
  10. normal

This is why a normal comfort or air-quality response may not run while a higher priority safety, moisture, gate, or alert state is active.

Gates Come First

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 should show gate truth rather than letting stale lower-priority alert text pretend it still owns the decision.

Alert Decisions Need Context

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

If that context is incomplete, HI should degrade safely. It should not blindly boost an unknown output just because a risk signal exists.

Season-Aware Targets

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 Is Real But Lower Priority

Air-quality response can matter, especially for cooking, occupancy, particles, VOCs, or stale air. But normal AQ response does not outrank carbon-monoxide emergency or moisture-risk alert lanes.

If AQ looks delayed, check whether a higher-priority lane or global gate is active.

Humidifiers Are Separate

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.

What The Reason Panel Should Do

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.

What This Page Does Not Do

This page explains the current public model. It does not define runtime behavior. The implementation contract remains in the repository source and design brief.

Clone this wiki locally