Skip to content

Understanding Control Decisions

Senyo edited this page Sep 8, 2026 · 10 revisions

Humidity Intelligence Wiki

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.

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 higher-priority safety, moisture, gate, or alert states take the lead before normal comfort or air-quality response.

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 is expected to show gate truth so the visible reason matches the active decision.

Manual Output Handover

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.

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

When that context is incomplete, HI can degrade safely and explain the missing mapping before any output path takes authority.

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. 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.

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.

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.

The simple reason

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.

Alert reason before and after

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

Reason field before and after

The general reason view separates what happened, why it happened, and what HI is doing while preserving backend-owned truth.

Source Of Runtime 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

Clone this wiki locally