Humidity Intelligence
Domestic Environmental Stabilisation Engine for Home Assistant
Contents
- TL;DR
- V2.1 — Stability Score
- Project Site and Search Discovery
- Wiki and Support Manual
- What Is Humidity Intelligence
- V2 UI Example
- Support Humidity Intelligence
- Why Environmental Stability Matters
- Air Quality and Environmental Stability
- Season-Aware Environmental Control
- Design Philosophy
- Architecture Overview
- Public Architecture Contract
- Current Release Highlights
- Installation
- Dashboard add-ons
- Migration Guide - v1 to v2
- Full Configuration Flow
- UI Gallery
- Post-Configuration Workflow
- How to Use Services
- Support, Diagnostics, and Issue Triage
- Runtime Simulation Validation
- Release Notes
TL;DR
Humidity Intelligence is a domestic environmental control engine for Home Assistant. It watches the conditions inside a home, decides which environmental problem needs attention first, and explains that decision in plain Home Assistant entities and dashboard text.
It reads humidity, temperature, air quality, condensation, mould-risk, carbon monoxide (CO), presence, time, pause, and override signals, then resolves one explainable control decision per evaluation cycle.
It gives you:
- season-aware humidity targets
- deterministic lane priority
- safe degraded behavior when inputs are missing
- exported Lovelace Manual-card YAML backed by runtime truth
- native Home Assistant diagnostics for support and triage
- services for dashboard export, self-check, diagnostics, pause/resume, and release validation
Optional HA Lab evidence is advisory and does not block promotion, tagging, or publication. Canonical tests, review, CI, version governance, and explicit maintainer decisions remain the release authority.
For publication status, installed packages, and release tags, use GitHub Releases and HACS as the user-facing record.
V2.1 — Stability Score
**Stability Score shows how consistently your home has stayed near its environmental targets over the past 72 hours.** It brings together humidity, steadiness, room balance, moisture risk, configured air quality and recovery. It observes conditions without changing HI’s control decisions.
*Stability Score 92, classified Excellent. Output monitoring remains incomplete, as shown separately below the score.*
Tap the badge for contributions, individual deductions, their total and the calculation: 100 − total deductions = calculated score. The displayed score also reflects backend rounding and safety ceilings: 64.91 rounds to 65; a ceiling of 91 does not raise it. Missing evidence can limit or prevent a score.
Hold the existing badge, or Space while focused, to show Disabled with a distinct violet/indigo glow and LEDs; repeat to restore it. Your choice follows your account and HI entry across sessions. Tap details, calculation, evidence, history and control continue; no extra switch is needed.
The 72-hour score, recent movement and recorded history describe different things. The arc compares the current displayed score with an actual reference from within 60 minutes; its colour shows the latest update. Score history retains ten-minute points and genuine gaps. Restart/reload starts collection again. The Stability guide explains coverage, deductions and ceilings; the calculation contract records the exact rules.
V2.1 includes opt-in output observation, adding read-only diagnostic context and an optional adaptive Outputs view. The adaptive Outputs panel uses an HVAC icon and a compact attention summary; full evidence and existing native controls are available on demand.
Project Site and Search Discovery
The project site introduces HI
for search and discovery. Installation, configuration, release notes, diagnostics
and runtime guidance remain in this repository and the Wiki; reviewed examples live
in ui-gallery/.
Wiki and Support Manual
The Wiki is the practical support manual for setup, services, diagnostics, generated dashboards, and user-safe release checks. It exists early here so users do not have to dig through the README before finding the longer guides.
Useful Wiki pages:
- Home
- Configuration Walkthrough
- Services Reference
- Generated Dashboards
- UI Gallery
- Diagnostics and Support Bundle
- HACS and Updates
- Migration Guide - v1 to v2
- Air Quality and CO Safety
- Troubleshooting Generated UI
- Release Validation for Users
- Understanding Control Decisions
- Getting Help
custom_components/humidity_intelligence/manifest.json.
What Is Humidity Intelligence
Humidity Intelligence is designed to help stabilise the environment inside a home using real sensor telemetry and carefully coordinated smart-home control.
Most Home Assistant dashboards show readings. Humidity Intelligence turns those readings into a single, explainable control decision. It watches humidity, temperature, temperature drift, air quality, condensation risk, mould risk, and seasonal comfort patterns, then uses configured devices to guide the home back toward a more stable state.
With configured sensors, Humidity Intelligence can control devices such as:
- air purifiers
- dehumidifiers
- extractor fans
- humidifiers
- ventilation systems
- smart lighting alerts
- rising bathroom humidity can trigger extractor and ventilation behaviour before condensation settles
- poor air quality from cooking or occupancy can activate configured purification or ventilation zones
- unstable overnight humidity can be corrected gradually to improve comfort and reduce moisture stress
- dangerous conditions such as mould-risk humidity or carbon monoxide escalation can trigger higher-priority safety responses
You can see why HI is acting, what triggered the response and which zone is active. Seasonal context, comfort targets, alerts and backend reasons stay visible in the UI.
V2 UI Example
See the selected response, environmental conditions and reason together in Current Air Control.
Earlier candidate captures: normal monitoring · air-quality response. The pictured Autumn 47–58% band and earlier badge layout predate the current 50–60% profile.
Conditions and response
The reason panel explains the observed condition, selected response and any operating gate, so you can see why HI is acting or waiting.
Earlier candidate captures: humidity alert · operating time gate. Captured readings and controls are retained; current targets and card layout may differ.
More UI Examples
Browse more operating states and choose a layout in the UI Gallery.
Support Humidity Intelligence
Enjoying Humidity Intelligence?
If you're finding Humidity Intelligence useful, insightful, or just interesting to explore, consider giving the repository a star.
It helps others discover the project, supports ongoing development, and shows that this kind of deterministic, explainable approach to Home Assistant has community value.
⭐ Star Humidity Intelligence on GitHub
Optional sponsorship is also available through GitHub Sponsors:
Support the project on GitHub Sponsors
Sponsorship is optional and separate from support SLAs, private support obligations, feature guarantees, release commitments, and Home Assistant / HACS behavior.
Why Environmental Stability Matters
Homes rarely become damp, dry, stale, or uncomfortable because of one isolated reading. Problems usually build as patterns: a bathroom that stays wet too long, a bedroom that drifts away from the rest of the house, a winter profile that needs a lower humidity target, or an air-quality spike that lingers after cooking.
Humidity Intelligence is built for those patterns. It treats environmental stability as the goal rather than a single perfect number.
The important signal goes beyond "humidity is high" or "humidity is low." It is the shape of the problem:
- drift
- imbalance
- duration
- recurring spread patterns
High humidity can make sleep feel broken and heavy. It can also help condensation settle on cold surfaces, support mould and dust-mite conditions, damage finishes, and stress timber or other moisture-sensitive materials over repeated cycles.
Low humidity is quieter, but it can still be uncomfortable. Dry winter air can mean irritated airways, dry throat, coughing, itchy skin, gritty eyes, and natural materials that shrink, creak, or crack as they repeatedly dry out.
Humidity Intelligence is designed for that domestic rhythm. It can see rooms rising or falling away from the active seasonal target, explain the condition, and use configured ventilation, dehumidification, or humidification before short-lived discomfort becomes repeated instability.
For the fuller explanation, including property impact, health comfort, sleep, night-time humidity sources, dry-air effects, plant health, and research context, see the Wiki guide: Why Environmental Stability Matters.
Air Quality and Environmental Stability
Humidity Intelligence is broader than humidity alone. It contributes to environmental stability by surfacing indoor air-quality signals from configured Home Assistant entities and, where users have configured suitable outputs, using available devices such as air purifiers or ventilation fans to respond to poor air-quality conditions.
Air-quality support is telemetry-driven. Humidity Intelligence reflects configured sensors, entities, thresholds, and output devices; the UI and reason panel stay aligned with backend/entity truth.
In V2.1, Stability Score puts those conditions in context over 72 hours. It helps you spot persistent imbalance, repeated moisture risk and slow recovery that one current reading can miss. Configured air-quality evidence contributes alongside humidity and moisture-risk evidence; the detail view shows deductions and coverage so you can see what deserves attention. A high score still leaves individual alerts, missing evidence and output-monitoring gaps visible. See the Stability guide.
The wider air-quality (AQ) telemetry family in the current configuration flow includes indoor air quality (IAQ), fine particulate matter (PM2.5), volatile organic compounds (VOCs), carbon dioxide (CO2), and carbon monoxide (CO), depending on what the user configures.
Where an AQ lane is configured, it remains below safety and moisture-risk alert lanes in the deterministic priority order. Carbon monoxide emergency handling remains the highest-priority runtime lane, while normal AQ responses are deferred when higher-priority alert or zone lanes are active.
Carbon-monoxide safety deserves primary, certified protection. Humidity Intelligence can reflect configured CO telemetry as an additional Home Assistant awareness layer, while certified carbon-monoxide alarms remain the primary detection and alerting system.
Detailed AQ and CO guidance lives in the support manual:
Season-Aware Environmental Control
56% can mean different things.
The same humidity reading can mean different things in January and July. A home that feels stable in summer may be too damp for a cold winter envelope, while an aggressive winter target may be unnecessarily dry in warmer months.
Humidity Intelligence evaluates humidity relative to the active target profile:
- Winter defaults to a lower comfort band than summer
- Spring uses 47–58%; autumn uses 50–60% with a 64% high-risk threshold
- Custom target profiles are supported when configured
below_target-> dry for the active profilein_target-> stable band for the active profileabove_target-> elevated for the active profilehigh_risk-> at or above the active profile's danger threshold
Temperature comfort uses the same source-of-truth approach for display, so dashboard colours and chips follow backend comfort sensors rather than card-only assumptions:
- Automatic mode resolves the active seasonal comfort band and warm boundary
- Custom mode allows a fixed lower/upper comfort band and derives the warm boundary as custom high +
1.0°C - Temperature chips use HI comfort sensors, not card-only thresholds
- Winter: blue below
20°C, green20-21°C, yellow21-21.5°C, red above21.5°C - Spring: blue below
20.5°C, green20.5-22°C, yellow22-23.5°C, red above23.5°C - Summer: blue below
21°C, green21-24°C, yellow24-26.5°C, red above26.5°C - Autumn: blue below
20°C, green20-21.5°C, yellow21.5-23°C, red above23°C
Design Philosophy
Humidity Intelligence is built around a simple premise: a home works better with one visible environmental controller than with a loose pile of automations competing for control. That controller should read configured telemetry, apply a stable priority hierarchy, and resolve one explainable outcome per evaluation cycle.
The engine is deterministic by design. It avoids guesses and hidden preferences. It evaluates season-aware humidity targets, safety gates, alert conditions, zone demand, air quality state, and humidifier needs through explicit rules so runtime behavior can be inspected, predicted, and explained.
The UI is a truth surface. Current Air Control, chips, diagnostics, and exported cards reflect backend telemetry, entity mappings, runtime mode, and degraded-state reasons. If an input is missing or an output is unavailable, Humidity Intelligence shows that condition and falls back safely without pretending the home is stable.
Stability Score applies the same explainability to environmental patterns. Its backend-owned score, deductions and evidence coverage help you judge consistency and recovery over time. It remains observational: lane selection and output control follow their existing rules, and incomplete evidence is shown explicitly.
The architectural preference is calm regulation over automation chaos:
- one selected ventilation lane per evaluation cycle
- CO emergency and alert hierarchy before comfort correction
- humidifier lanes kept independent from ventilation resolution
- global gates and overrides visible when they suppress control
- exported Manual-card YAML aligned with backend truth only
- safe degraded behavior before blind output writes
Architecture Overview
Humidity Intelligence operates across three defined layers. Each layer has a clear job: turn readings into meaning, decide which lane has authority, and show the result without inventing extra logic.
1) Intelligence Layer - Environmental Physics
This layer turns raw telemetry into structured environmental signals:
- dynamic house average humidity
- 7-day mean and drift tracking, using the canonical
sensor.house_humidity_mean_7dstatistics dependency - Magnus dew point calculation
- condensation spread (
temperature - dew_point) - mould risk normalization
- worst-room detection
- binary danger states
- observational Stability Score, combining valid backend samples over 72 hours
New V2 installs also need the House Humidity Mean 7d Statistics helper for drift; an existing helper can be retained. Until real history is ready, drift remains not ready or unavailable.
This layer models risk and environmental consistency. Stability Score supplies context for review; it is never an input to lane selection or output writes. Control happens in the deterministic priority engine.
2) Control Layer - Deterministic Priority Engine
This layer decides which single lane gets control authority during the current evaluation cycle.
Canonical runtime order:
- CO Emergency: highest-priority safety lane
- Humidity Danger
- Mould Danger
- Mould Risk
- Condensation Danger
- Condensation Risk
- Zone 1
- Zone 2
- Air Quality
- Normal
If an alert candidate cannot be mapped to a safe zone output, HI skips blind boosts. The reason panel reports the unmapped/degraded alert and automation continues to the next eligible priority.
Built-in humidity, mould, and condensation risk states are treated as alert candidates when they can be traced back to telemetry. This keeps zone boost behavior and the companion alert chip aligned even if a matching explicit alert row has not been added.
Humidity Danger alerts follow the active target profile's high-risk threshold at runtime. Legacy saved humidity threshold values are ignored for that alert type, so seasonal/custom profile changes immediately affect alert evaluation.
Custom trigger entities and custom binary sensors are not part of the alert flow. Optional alert configuration is for enabling HI alert handling and adding visual indicator rules only; the alert source remains HI's deterministic intelligence layer.
Boost settings should normally be higher than the standard zone fan level. Zone control handles normal correction; boost is reserved for danger escalation such as condensation, mould risk, or humidity danger.
Humidifier lanes operate independently where safe.
Manual override hands ordinary output ownership to the user or external automation.
HI cancels pending non-CO control work and leaves existing fan, switch, humidifier,
and visual-alert output states unchanged. Its mode and reason surfaces report that
handover directly, while humidifier diagnostics retain observed state as
manual_hold without claiming HI selected it. CO emergency remains the only
exception and can still force its configured ventilation outputs to 100%. Turning
Manual off triggers a fresh deterministic evaluation and restores normal AUTO
ownership. This does not add temporary manual operation while AUTO remains enabled.
Humidifier demand and output truth are intentionally separate. The existing downstairs/upstairs humidifier-active helpers mean HI is requesting humidification after global, pause, presence/time, telemetry, manual-override, and alert gates have been applied. Humidifier-output isolation is evaluated after demand, so testing can show truthful requested demand while suppressing service calls.
For each configured humidifier, fan, or switch output, HI compares aggregated
lane demand with the Home Assistant-observed state. An off output during active
demand receives one immediate turn-on request and at most two delayed retries; an
output still mismatched after the final confirmation window is fault-latched instead
of being hammered. Output state events request coalesced reevaluation, and the normal
engine interval is the periodic safety net. Shared outputs use OR ownership, so one
lane recovering cannot turn off an output still demanded by another lane.
Using a blocking Home Assistant service call would only wait for the service handler; it would not confirm device actuation or moisture output. HI therefore keeps dispatch non-blocking and establishes truth from later observed state with bounded retries.
NORMAL remains a valid ventilation mode while humidifier demand is active: it means
no ventilation lane won the deterministic ventilation hierarchy. V2 chips report
humidifier Requested, On, Idle, Isolated, Retrying, Stopping, Unknown, Degraded, or
Fault truth; reason text and diagnostics retain the full backend reconciliation
detail. Chip label On is the concise presentation of backend output_on. A generic
output on state—and any optional vendor/platform action attribute—is Home Assistant
evidence only and does not prove physical moisture production.
Each evaluation cycle:
- global gates evaluated
- lanes resolved top-down
- first valid lane wins
- lower lanes remain blocked
This keeps control ownership explicit and prevents lower-priority comfort responses from fighting safety or risk responses.
3) Presentation Layer - Clear, Truthful Status
This layer explains what HI is doing:
- the selected ventilation response
- any gate, pause, or override limiting control
- the reason for the decision
- humidifier demand and the output state Home Assistant can observe
- Stability Score, its evidence and deductions, recent movement and recorded history
The Air Control Reason entity supplies the final wording shown by V2 cards. The cards
display that backend-authored text instead of rebuilding control logic in the
dashboard. When the text is missing or the card uses an older format, it falls back to
the existing reason and ultimately shows Reason unavailable. Older cards and
existing integrations can continue using the original reason state and supporting
details. The technical format and fallback rules are documented in
ARCHITECTURE.md.
The selected ventilation response, humidifier demand, and output seen by Home
Assistant are reported separately. A humidifier chip labelled Requested confirms
demand only. HI reports separately whether it sent a command and whether Home
Assistant sees the output as on. Entity state alone leaves physical moisture
unverified. If information is missing or unmatched in the setup, the UI shows
Unknown, Unavailable, or Degraded instead of an all-clear.
Red control-row styling is reserved for a selected alert or CO response. Other environmental warnings remain visible in the reason text without being presented as the active control response.
Public Architecture Contract
The tracked public architecture contract lives in ARCHITECTURE.md. It records the durable runtime, UI-truth, Home Assistant compatibility, and release authority rules used for public review.
Maintainer-only planning notes may exist locally, but public contributor correctness must be reviewable from tracked repository files.
Current Release Highlights
V2.1 improvements — published Stable v2.1.0.
- Stability Score: an explained view of 72-hour environmental consistency,
- Clearer badge details: Humidity, Condensation, Mould and 7 Day Drift explain
- Recent movement and display choice: the Stability arc compares actual scores
- Optional output monitoring: the Outputs panel shows reported conditions and
- Simpler control status and configuration: a compact Current Air Control row,
- Autumn refinement: the built-in target band is 50–60%, with humidity danger
Published v2.1.0 uses UI revision 9 in both V2 layouts, superseding revisions 1–8. Run refresh_ui, export
with view_cards or dump_cards, replace the complete YAML in older saved cards,
then refresh the frontend. Revision-9 cards from v2.1.0-rc.1 remain compatible; the final
version bump does not require another card refresh. The V1 Mobile Drift correction
also requires replacement YAML; that layout has no revision indicator. An authorized package update requires a full Home Assistant restart.
Restart/reload starts Stability history collection again. See
HACS and Updates
for package, card and rollback steps.
Installation
Option A - HACS (Recommended)
Requires Home Assistant 2026.5.1 or newer.
The button opens Humidity Intelligence in HACS; it does not install automatically. Select Download in HACS, then continue with the restart and integration setup steps below.
The repository uses the conventional HACS integration layout under
custom_components/humidity_intelligence/. HACS installs that package directory only;
repository documentation, tests, scripts, site files, legacy material, and UI Gallery
examples are not included in the Home Assistant integration payload.
- Open HACS in Home Assistant.
- Search for Humidity Intelligence, filtering by Integration if needed.
- Open the repository entry and select Download.
- Restart Home Assistant.
- Go to Settings -> Devices & services -> Add integration.
- Search for Humidity Intelligence and complete setup.
Option B - Manual package upgrade
Keep rollback copies outside custom_components. Another directory declaring the
HI domain can interfere with integration discovery. After startup, verify Home
Assistant's loaded integration version and confirm entities and services are available.
Use the loader identity fields
in native diagnostics; HI's own disk-backed version field alone is insufficient.
Use the exact contents of custom_components/humidity_intelligence/ from the chosen
release or candidate and replace the complete existing directory at:
/config/custom_components/humidity_intelligence/
Follow the manual package update guide for backup, full-restart and rollback steps.
Dashboard add-ons
Humidity Intelligence runs fully at the backend level. The richer dashboard experience depends on a small set of frontend cards.
You can complete setup without them, but if you want the full visual system (badges, charts, reason panel, mobile/tablet layouts), these are strongly recommended.
Core Recommendation
Install via HACS before anything else.
Optional frontend cards
The following projects power the visual layer of Humidity Intelligence:
Advanced styling engine used for dynamic visuals, glow states, and conditional UI rendering. Core building block for badges, status indicators, and interactive UI elements. Structural wrapper used to apply styling cleanly across complex card layouts. Powers historical graphs, trend analysis, and environmental visualisation.Installation Notes
- All frontend dependencies can be installed via HACS (Frontend section).
- After installing, hard refresh your browser or use a new session to avoid caching issues.
- If you skip these, the system still runs, but UI elements may not render correctly.
Acknowledgements
Huge respect and thanks to the creators of these projects. Humidity Intelligence builds on top of their work:
- Thomas Loven for card-mod and mod-card
- Custom Cards Community for button-card
- RomRider for apexcharts-card
Suggested Setup Approach
If you are unsure:
- Install HACS
- Install the frontend dependencies above
- Continue with the configuration flow
- Skip for now
- Complete backend setup first
- Add the UI layer afterwards
Configuration Method
Recommended: staged setup. Add a small core sensor set first, complete setup, save the integration, then return through Options to add the remaining sensors, rooms, zones, air-quality inputs, humidifiers, alerts, and dashboard exports. This gives you a saved baseline before the configuration grows.
Advanced: full setup. If your sensor layout is already mapped, add every sensor during first setup and continue through the whole flow in one pass.
Migration Guide - v1 to v2
V1 was template-based. V2 is a structured integration with configuration flow and runtime validation.
Migration is required. Follow the preserved V1-to-V2 migration guide for HACS setup, V1 cleanup, the drift helper and dashboard checks.
Full Configuration Flow
First install follows a staged setup path. Essentials stay visible first; expert controls sit inside live Show advanced tuning sections so normal setup stays approachable.
Setup shape:
- Welcome and setup strategy
- Dashboard add-ons
- Operating schedule & limits
- Sensors
- Temperature change settings
- Zones
- Humidifiers
- Air Quality
- Alerts and CO Emergency
- UI Cards
- add humidity and temperature telemetry for active levels
- use the first-run welcome page as the high-level setup strategy: save the smallest
- assign telemetry to stable, readable rooms and levels
- review any Home Assistant Area/Label setup suggestions before saving them as
- let HI calculate temperature trends from configured temperature sensors unless you
- optionally set Level 1 / Level 2 display labels from Zones before Zone 1 / Zone 2 setup; labels are display-only and fall back to
Level 1/Level 2 - keep zone labels and output mappings clear enough for reason text and diagnostics
- use recommended thresholds first, then tune from options after observing behavior
- keep AQ and CO telemetry grounded in configured Home Assistant entities
- use zone boost levels for alert escalation where alerts resolve to a mapped zone
- use the generated dashboard export after setup or option changes
v2_tablet. show_output_entity_details is display-only and controls whether generated cards include the expandable output details panel.
Level display labels are also display-only. Changing them updates generated-card/config-flow/support text after options are saved and cards are refreshed. Entity IDs, helpers, levels, zones, outputs, and runtime lanes keep their existing identities.
Home Assistant Area and Label setup assistance is read-only. HI may suggest room or level defaults from registry metadata, and diagnostics may report sanitized mismatch counts, but runtime control keeps using saved HI telemetry, zone, AQ, humidifier, and alert mappings.
Detailed manual:
UI Gallery
The browseable UI Gallery lives in the Wiki:
Canonical YAML, preview assets, and contribution rules remain versioned in this repository:- Gallery source
- Default V2 Mobile AQ
- Default V2 Tablet Zone 1 Cooking
- Default V1 Mobile (deprecated)
- Contributing UI Gallery examples
For new gallery submissions, open a repository pull request. Do not treat Wiki-only YAML as canonical install guidance.
Post-Configuration Workflow
When modifying options:
- change one section at a time
- choose Save changes on the main settings menu to persist the staged changes
- run
humidity_intelligence.refresh_uior export cards where the current release guidance calls for it - verify Current Air Control mode, gate chips, reason text, and output behavior
Common post-configuration areas:
Sensors: add, edit, or delete telemetry rows; Area/Label suggestions are
Operating schedule & limits: edit time, presence, alert-only, and target-profile behaviorZones: edit display-only Level 1 / Level 2 labels before Zone 1 / Zone 2 configurationComfort and thresholds: review comfort mode and zone thresholdsHumidifier control: add or edit per-level humidifier lanesAir quality control: add or edit AQ lanes, triggers, outputs, and thresholdsDashboard add-ons: inspect optional frontend-card availabilityTemperature change settings: configure temperature-trend calculation and source overridesOutput monitoring: configure optional reporting and exact source rules; use
- UI: run
humidity_intelligence.dump_cardsand replace Manual-card YAML
Detailed manual:
How to Use Services
Open Developer Tools -> Actions and select the humidity_intelligence domain.
Use refresh_ui to refresh the rendered card cache, then dump_cards or view_cards
to export YAML for a Manual card. External export, control, cleanup and snapshot
services require an authenticated admin context.
The Services Reference contains examples, entry scoping, file locations, permissions and cleanup rules. Use Generated Dashboards for the complete card workflow and Release Validation for Users for support checks.
Support, Diagnostics, and Issue Triage
For bugs or configuration help, include your HI and Home Assistant versions, the symptom and what you tried. Native Home Assistant diagnostics are the preferred attachment: **Settings -> Devices & services -> Humidity Intelligence -> Download diagnostics**. Review the complete file before uploading it to a public issue; user-configured display and level labels may remain. Self-check and release reports may contain entity IDs and should stay private until reviewed or sanitized.
Start with Getting Help and Diagnostics and Support Bundle. They cover issue selection, diagnostics, privacy review and the optional browser-local Support Bundle Inspector. For ideas and wider changes, use the Community Ideas & Proposals issue form.
Runtime Simulation Validation
Maintainer runtime validation includes a backend-consumed fake telemetry harness
for HI Air Control Mode and HI Air Control Reason truth. It is test-only:
no Home Assistant helpers, services, dashboards, automations, or fake fan output
writes are created by default.
Run it from the repository root:
python3 "tests 2/test_air_control_mode_simulation.py"
The harness covers normal, telemetry unavailable, zone pressure, AQ pressure, disabled/manual/global gates, baseline-clear CO telemetry, and explicit opt-in CO emergency pressure. Details are in Runtime Simulation Validation.
Release Notes
v2.1.1 (Stable source preparation)
!Humidity Intelligence v2.1.1 — single-level cards and clearer update status
Single-level exports and self-check counts follow saved Options. Configured-unavailable inputs and genuine mapping failures remain visible.
- HACS update evidence stays separate from UI compatibility and loaded-code identity.
- Calculated trends use each minute's latest reading. Weighting can change slope-based
- Revision 13, schema/generator 1 remain compatible with beta.4/RC.1 cards.
Final source preserves RC.1 runtime and cards; manifest/guidance give a new package identity. Complete notes cover #129, validation and upgrade/rollback. V2.1.0 remains published Stable.
v2.1.0 (Current Published Stable)
!Humidity Intelligence V2.1 Stability Score release header
V2.1 introduces Stability Score, its evidence and deduction breakdown, recorded history and hold-to-disable presentation. It adds clearer badge explanations, optional output monitoring, reusable monitoring meanings and a compact Current Air Control row. See the V2.1 overview and complete change history.
as a non-prerelease GitHub Release from the reviewedv2.1.0 tag.
- Uses a rolling 72-hour window, explicit evidence coverage and safety ceilings.
- Sets built-in autumn humidity targets to 50–60%, with humidity danger at
- Includes the RC review corrections for recovery without routine AQ, event-loop
- Retains touch/keyboard detail controls and hold-to-disable. Both V2 layouts use
- Requires no V2 configuration or entity migration. Install the complete package and
refresh_ui, export with view_cards or dump_cards, and replace the complete
YAML in older V2 cards, plus V1 Mobile for its Drift correction. Refresh the client.
Existing v2.1.0-rc.1 revision-9 cards remain compatible; final version metadata does not
make them stale.
- Preserves the reviewed runtime and generated-card bytes from v2.1.0-rc.1. The final package
Previous Releases
v2.1.1-rc.1 (Earlier unpublished candidate)
Consolidated the dashboard and hardening fixes, then corrected self-check Options counts. PR #132 merged the RC into develop with revision 13 unchanged. See RC history.
v2.1.1-beta.4 (Earlier unpublished candidate)
Introduced the quiet no-update footer and right-aligned ↑ Update available cue, retaining skipped, progress and unverified states. Both layouts advanced to revision 13 with schema/generator 1. Its package and saved-card replacement requirements remain in the historical candidate notes.
v2.1.1-beta.3 (Earlier unpublished candidate)
Adds a separate HACS update status beside the existing UI revision LED. Green still means UI current; the software label reports an update, no update, a skipped release, progress or unverified information. Open the footer for both version details and View update in Home Assistant.
- HACS is optional. HI reads its reported state without new network polling or
- Both V2 layouts advanc
