Skip to content

Releases: senyo888/humidity-intelligence

Humidity Intelligence v2.0.11 — Poetic Justice

Choose a tag to compare

@senyo888 senyo888 released this 11 Aug 08:25
0dd3e68

Humidity Intelligence v2.0.11 Poetic Justice release banner

Latest Release Project Site License Sponsor Star Humidity Intelligence

Humidity Intelligence v2.0.11 — Poetic Justice

Poetic Justice is a focused maintenance release that restores the familiar Stability Score preview badge after final release validation exposed a small YAML grid-area interpretation problem.

Humidity Intelligence remains deterministic. This release changes how the passive badge is presented; it does not add Stability Score calculation, alter a control decision, or change an output.

What changed

  • Restored the centred Stability Score preview circle and its full Stability Score wording across generated V2 Mobile, V2 Tablet, and both canonical gallery cards.
  • Kept the established 82px circle, seven LEDs, neutral-white six-second breathing preview, and reduced-motion support.
  • Quoted the button-card name grid area as 'n', preventing the Home Assistant YAML path from interpreting the scalar as Boolean false and creating an unintended second grid column.
  • Kept the badge passive: absent Stability diagnostics show 2.1 / PREVIEW; an explicitly present but unusable nested stability_score payload shows NO SCORE; collecting, unavailable, and completed backend states retain their existing truth.
  • Extended the existing v205_release_check compatibility boundary through v2.0.11 without renaming the service or changing its runtime/device-read-only purpose.
  • Retained the conventional HACS package at custom_components/humidity_intelligence/, with exactly 52 tracked installation files.

Update steps

After HACS offers v2.0.11:

  1. Update or re-download Humidity Intelligence through HACS.
  2. Perform a full Home Assistant restart. A config-entry reload alone cannot activate the changed Python package and release-check service code.
  3. Run humidity_intelligence.refresh_ui.
  4. Create a fresh dump_cards or view_cards export.
  5. Replace the complete YAML in each existing Manual card.
  6. Refresh the browser or app frontend if cached.
  7. Confirm that the Stability Score circle and wording are centred and that the breathing preview remains passive.

Compatibility and migration

  • No config-entry, entity-registry, stored-data, threshold, lane-order, service-name, or dashboard-registration migration is required.
  • Entity IDs and states are unchanged.
  • Deterministic lane ordering, output dispatch, configuration, stored data, diagnostics privacy, and backend-owned UI truth are unchanged.
  • create_dashboard retains the v2.0.10 no-write Manual-card guidance contract.

Validation

  • Tracked clean exact-main source suite: 394 tests and 131 subtests passed.
  • Ignored local auditor regression suite: 4 tests passed separately; this local-only coverage is excluded from the PR and public suite.
  • Direct air-control, humidifier-reconciliation, reason-presentation, diagnostics, Stability renderer, and reason renderer checks passed.
  • Workflow, version-governance, compilation, YAML/JSON, tracked secret-scan, and exact 52-file package checks passed.
  • Exact merged-main source is 1e8d6480d8e1184850c76417a43e7743bcc200b2, tree 6e2959642165ce857823f92f3801efd1f322b974, component tree 14471d00ca351feadfb64f3200f267d43a128b90, byte-identical to reviewed develop 59d21c3.
  • Exact-main validation passed 394 tests and 131 subtests, Stability 7/7, Reason 13/13, Inspector 21/21, compileall, main/stable version governance, and all five merge-commit push workflows.
  • Bella, Aetherwing, Aetherbite, and advisory AetherCore review findings were reconciled with no remaining source blocker.
  • Content Harmony completed with no blocking finding and no source mutation.
  • Maintainer Stable testing and a full restart covered exact pre-bump functional commit e56103e. Exact comparison to 4aa4de8 proves byte-identical runtime/control files and all four Stability card surfaces; later integration changes are limited to manifest identity, read-only release-check compatibility/messages, its service description, and packaged UI documentation.
  • The version-bearing report therefore correctly identifies 2.0.10 and validates the unchanged functional runtime/UI bytes. The native diagnostics report is versionless and cannot prove the final v2.0.11 package identity. Its diagnostics-key privacy boundary passed: zero entity-ID-shaped object keys were found, and the two entity-ID values are the documented humidity-drift source and dependency fields rather than mapped-entity disclosure.
  • The earlier v205_release_check call does not exercise the later v2.0.11 compatibility extension. A fresh report from the final package identity must be retrieved and reviewed before tag or publication.
  • Exact-head GitHub Validate, Gitleaks, version-governance, hassfest, and HACS checks passed on PRs #107 and #108. CodeRabbit reviewed all 12 eligible text/code files on #107 and the one-file clean-checkout correction on #108; neither review generated an actionable comment.
  • Promotion PR #109 merged exact develop to main. All promotion GitHub Actions and CodeRabbit passed; CodeRabbit’s four pre-merge checks passed with no inline finding. GitHub recorded no approving review and still reported REVIEW_REQUIRED at merge, so that gate-order exception remains explicit.
  • Public-status correction PR #110 merged exact head dbe7485 from senyo888-patch-1 to develop as 7569c307, tree 4c196502. Its six documentation/test files remove stale pending-promotion wording and explicitly preserve the complete pre-tag and pre-publication gates without changing any installable component byte. All exact-head Actions passed. CodeRabbit marked both original comments resolved as addressed in dbe7485; its incremental rereview was rate-limited. Senyo’s MAINTAINER_REVIEW_EXCEPTION_ACCEPTED_FOR_EXACT_HEAD authorized only that exact patch-to-develop merge and does not transfer or adjudicate PR #109.
  • PR #111 merged exact develop 59d21c3, tree 6e295964, to main as 1e8d648 for the same six-file correction. CodeRabbit’s only finding required explicit PR #109 independent-or-maintainer adjudication wording in the detailed changelog and matching regression coverage. Exact head 59d21c3 fixes it; the thread is resolved and marked addressed, while the incremental rereview was rate-limited. All exact-head Actions passed. Senyo recorded MAINTAINER_REVIEW_EXCEPTION_ACCEPTED_FOR_EXACT_HEAD in the PRT and standalone PR comment #issuecomment-5249489754. The exception was limited to the exact develop to main merge decision and corresponding ruleset bypass and was consumed only by that exact merge. It does not transfer or adjudicate PR #109.
  • PR #112 synchronised the exact v2.0.11 release source from main into senyo888-patch-1 for the final Stable-instance pull. It merged on 11 August 2026 as 8c5ddee7; its tree is content-identical to exact main source 1e8d6480, including the 52-file integration payload. All PR GitHub Actions checks and CodeRabbit completed successfully.
  • Following the Stable package update and full Home Assistant restart, the custom-components catalogue, integration manifest and loaded integration data all reported 2.0.11.
  • Fresh V2 Mobile and Tablet cards were dumped, pasted into their Manual cards and rendered successfully. The refreshed self-check inspected 126 generated-card references with no missing, unknown or unavailable entities and no card-scoped unresolved placeholders.
  • The final v205_release_check completed with 11 passes, one warning, one skipped export-contract check, one informational result and no failures. Test exports were not requested by that check; the fresh Manual-card validation is recorded separately above.
  • The sole warning concerned a maintainer-confirmed external humidifier condition. HI requested the output, limited reconciliation to three total attempts, retained the desired-on/observed-off truth and fault-latched as designed. I reviewed and accepted this as a non-blocking external operational advisory. No v2.0.11 package, deterministic-control, entity, service or UI regression was identified during this validation. The original report remains accurately recorded as WARN.

Maintainer’s note

During final validation after v2.0.10, I noticed that the Stability Score preview had drifted from its canonical layout. I corrected and tested the fix on my Stable Home Assistant instance and completed a full restart before the manifest identity was changed during release preparation. The runtime and UI files I tested have not changed since then, so the later report correctly still identifies that pre-bump package as v2.0.10. I confirmed that the familiar centred badge and breathing preview are restored. The final v2.0.11 package identity and release-check report remain separate checks before release.

The Stability badge remains passive. Humidity Intelligence’s underlying decisions remain deterministic and evidence-based; t...

Read more

Humidity Intelligence v2.0.10 — The Simple Reason

Choose a tag to compare

@senyo888 senyo888 released this 10 Aug 11:09
02b0f17

Humidity Intelligence v2.0.10 release banner

Domestic Environmental Stabilisation Engine for Home Assistant

Latest Release Project Site License Sponsor Star Humidity Intelligence

Humidity Intelligence v2.0.10 is about making deterministic environmental control easier to understand. The engine still makes one evidence-based ventilation decision per cycle; this release improves how those decisions, humidifier requests, observed device conditions, and degraded states are explained throughout the UI.

What’s new

  • The Reason field has been rebuilt around the backward-compatible hi.reason.v1 presentation contract. Dense technical records are now presented as clearer, natural household sentences while the existing technical reason and full_reason remain available.
  • Humidifier control now distinguishes demand, command attempts, Home Assistant-observed output state, bounded retries, isolation, recovery, and fault conditions. These signals describe Home Assistant state; they do not claim that physical moisture output has been measured.
  • V2 Mobile, V2 Tablet, and the canonical gallery cards now place ventilation and humidifier chips on one horizontally scrollable Current Air Control row. Humidifier chips clearly distinguish On, Requested, Idle, Retrying, Stopping, Isolated, Fault, Degraded, and Unknown.
  • The 52-file installation payload now uses the conventional Home Assistant and HACS layout under custom_components/humidity_intelligence/. HACS content_in_root is no longer used.
  • Native diagnostics now report mapped runtime-entity health as aggregate counts, and dump_diagnostics no longer includes mapping keys. The browser-local Support Bundle Inspector remains compatible with older schema-1 reports while discarding legacy mapping keys from its normalized output.
  • create_dashboard remains available for call compatibility but is now an admin-gated, no-write guidance action. Home Assistant dashboards remain user-managed through the Manual-card workflow.

Before updating

  1. Install v2.0.10 through HACS and fully restart Home Assistant. A config-entry reload alone does not load the complete updated Python package.
  2. Run humidity_intelligence.refresh_ui, then use dump_cards or view_cards to obtain a fresh V2 card export.
  3. Replace the complete YAML in each existing Humidity Intelligence Manual card, then refresh the frontend if cached content remains visible.
  4. If you previously relied on automatic dashboard creation or removal, move to refresh_ui, dump_cards or view_cards, and Home Assistant’s Manual-card workflow. Existing dashboards and legacy identifiers are retained.

There is no config-entry, entity-registry, stored-data, threshold, lane-order, entity-ID/state, or service-name migration.

Deterministic runtime continuity

Humidity Intelligence continues to select one authoritative ventilation lane per evaluation cycle. CO emergency remains the highest priority, seasonal targets remain backend-owned, humidifier lanes remain independent from ventilation selection, and unavailable or unmapped inputs continue to degrade safely and explainably.

The new wording does not make decisions for the engine. It communicates decisions and device conditions already established by backend runtime truth.

Maintainer’s note

For v2.0.10, most of the visible changes have been made to the Humidity Intelligence UI.

Some UI chips have been slightly modernised, while the humidifier chip has been updated to provide more useful information about the humidifier’s condition. If the humidifier reports a fault, it would normally mean that the unit requires human attention. In most cases, this will simply mean that the humidifier needs to be refilled.

I have also completely rebuilt the Reason field and introduced a new reason contract. The purpose of this work is to turn dense technical language into clearer, more natural and family-friendly sentences that everyone in the home can understand.

This is a complete redesign of how Humidity Intelligence communicates its reasoning. The underlying decisions remain deterministic and evidence-based; the improvement is in how those decisions are explained to the user.

I have also personally tested this update on my Stable Home Assistant instance, where it works as expected, and in my progressively improving HA Lab. Although HA Lab does not currently have release authority, my aim is to develop it into a trusted part of future release validation.

Finally, I have moved the 52 Humidity Intelligence installation files -the installation payload- into the standard HACS and Home Assistant directory structure under custom_components/humidity_intelligence/. This brings the release packaging into line with the expectations of HACS and Home Assistant as a whole.

Validation

The exact merged main tree completed the full release-validation protocol:

  • 396 Python tests and 129 subtests;
  • 24 air-control simulations and 39 humidifier reconciliation checks;
  • 14 reason-presentation and 13 reason-renderer tests;
  • 41 diagnostics and Inspector Python tests with four subtests;
  • 21 browser-local Inspector tests, including legacy schema-1 privacy compatibility;
  • Python compilation, three-fixture parity, stable version governance, 52-file package verification, diff checks, and tracked-history Gitleaks;
  • post-merge HACS, Hassfest, validation, security, version-governance, and GitHub Pages workflows.

Bella, Aetherwing, Aetherbite, and the advisory AetherCore governance review completed their exact-final assessments. CodeRabbit accepted the source-PR review request but skipped it because 110 reviewable files exceeded the applicable 100-file limit; this was a tooling-limit skip, not a code-review pass or release-code failure. CodeRabbit later completed its review of the exact five-file release-presentation patch on PR #104; its valid publication-gate wording finding was corrected before that patch reached main. The byte-identical PR #105 patch was rate-limited rather than reviewed again.

The beta.7 HA Lab soak completed 9/9 scheduled identity-verified checkpoints with no failed or missed slots. It remains advisory beta evidence. The final diagnostics privacy correction changed stable package bytes after beta.7, so the exact merged source validation above is the authority for those changed bytes.

Rollback

If you need to return to v2.0.9, restore the complete v2.0.9 package, fully restart Home Assistant, and re-export and re-copy the v2.0.9 cards where needed. Existing dashboards and retained legacy artifacts are not automatically removed.

Thank you

Thank you to everyone testing Humidity Intelligence, sharing careful diagnostics, and helping make environmental control easier to understand without weakening deterministic runtime truth. For setup, migration, diagnostics, or generated-card help, start with the Wiki and Support Manual or the browser-local HI Support Bundle Inspector.

Humidity Intelligence v2.0.9 - Secure by design

Choose a tag to compare

@senyo888 senyo888 released this 28 Jul 19:44
ab7b776

Humidity Intelligence v2.0.9 release banner

Domestic Environmental Stabilisation Engine for Home Assistant

Latest Release Project Site License Sponsor Star Humidity Intelligence

Humidity Intelligence v2.0.9 is a focused safety, support and export-reliability release. It gives generated reports and cards a clearer home, strengthens the boundaries around filesystem and admin operations, and makes support handoffs easier to review before sharing.

What’s new

  • The optional HI Support Bundle Inspector provides a browser-local preflight for supported Home Assistant diagnostics. Inspection remains on your device, with no upload, remote analysis or retained storage.
  • JSON reports now live under <config>/humidity_intelligence/exports/.
  • Generated card YAML now lives under <config>/humidity_intelligence/ui/.
  • Report and card writers use confined, no-follow, atomic replacement with restrictive owned-directory permissions.
  • External diagnostics, validation, card-export and viewing services enforce authenticated-admin boundaries before work begins.
  • Purge previews and removals are limited to exact HI-owned artifacts.
  • Dynamic V1 Mobile text is safely escaped. V1 remains available through v2.0.9, while V2 Mobile is the recommended layout for new dashboards.
  • Privacy filtering for issue-triage summaries has been strengthened.

Before updating

  1. Fully restart Home Assistant after installing v2.0.9. A config-entry reload alone does not load the complete updated Python and service boundary.
  2. Update automations or support processes that read generated files:
    • reports: <config>/humidity_intelligence/exports/
    • cards: <config>/humidity_intelligence/ui/
  3. Re-export and re-copy V1 Mobile cards to receive the latest escaping changes.
  4. Use an authenticated admin UI or API session for the protected external writer and mutation services.

Existing root-level report and card files are retained for safe review and rollback. Humidity Intelligence does not automatically move, copy, dual-write, symlink or delete them.

Runtime and UI continuity

The deterministic engine continues to select one authoritative ventilation lane per cycle, with CO emergency retaining the highest priority. Entity semantics, season-aware targets and backend-owned reason/UI truth remain aligned with the established V2 contract.

Generated dashboard logic remains anchored to backend entities, mappings and diagnostics. The visible user changes are the safer export locations, clearer support workflow and the refreshed V1 template.

Validation

v2.0.9 completed the project’s release-governance, HACS, Hassfest, security, runtime/card, configuration, diagnostics, Inspector, Pages and documentation checks. Bella, Aetherwing, AetherCore and Aetherbite completed their independent release-readiness reviews, with my final approval recorded separately.

Thank you

Thank you to everyone testing Humidity Intelligence, sharing careful diagnostics and helping make environmental control more dependable and understandable. If something looks wrong after updating, the Wiki and Support Manual and the browser-local HI Support Bundle Inspector are the best places to begin.

Humidity Intelligence v2.0.8 — Home Assistant 2026.7 Ready

Choose a tag to compare

@senyo888 senyo888 released this 06 Jul 10:28
7f60379

Humidity Intelligence v2.0.8 release banner

Sponsor
Star Humidity Intelligence

Humidity Intelligence v2.0.8

v2.0.8 is a calmer, safer, more Home Assistant-native release.

This update focuses on making Humidity Intelligence easier to set up, clearer to support, and safer to use as a generated dashboard system while keeping the core runtime contract intact: one deterministic, explainable control decision per cycle, with the UI reflecting backend truth only.

What changed

Home Assistant 2026.7 readiness

v2.0.8 includes compatibility work for Home Assistant Core 2026.7, including percentage-unit handling and release-validation coverage through the existing v205_release_check service.

The service name remains backward compatible, however it now accepts the v2.0.8 beta, release-candidate, and stable line.

Community-shaped setup improvements

A special thank you to @Yncensus for the thoughtful suggestion in issue #66.

That feedback helped shape the new Areas and Labels direction in v2.0.8. Humidity Intelligence can now use Home Assistant registry metadata as setup and diagnostics assistance, helping suggest room and level defaults and flag mismatches more clearly.

The important boundary remains: Areas and Labels assist setup, without silently take over runtime control. Saved HI telemetry, room, level, zone, output, AQ, humidifier, and alert mappings remain the source of truth.

That keeps the system flexible whilst strengthening deterministic control.

Safer generated dashboards

Default generated V2 dashboards are now more status-safe by design.

Pause/resume and other runtime-changing actions are kept out of default generated dashboard surfaces where they could be mistaken for passive status controls. The dashboard is still useful, and behaves more like a truth surface: read the state, understand the reason, then act intentionally.

Passive Stability preview

The generated V2 Pause LIVE tile has been replaced with a passive 'Stability Score' preview badge.

It can read the future v2.1 diagnostics when available, currently it is display-only in v2.0.8. Missing or empty future scores will stay in the safe future/default badge state.

Tighter pause/resume boundaries

Global all-entry pause_control and resume_control calls now require admin context.

Scoped entry_id pause/resume remains available, but broadly all-entry control are treated with the caution it deserves.

Cleaner diagnostics and support exports

Diagnostics and support exports now lean harder toward sanitized structure, counts, statuses, and redacted support data.

That makes issue reports easier to reason about without turning support bundles into raw local-state dumps.

Upgrade notes

After updating:

  1. Restart Home Assistant so the updated integration code is loaded.
  2. If you use generated dashboard YAML or pasted Manual dashboard cards, run humidity_intelligence.dump_cards again and paste the refreshed YAML.
  3. Refresh the dashboard/browser cache if the old card layout is still visible.
  4. Run humidity_intelligence.self_check or humidity_intelligence.v205_release_check if you want a release-safety sanity check.

No migration is required for entity semantics or deterministic lane ordering.

Thank you

Thanks to everyone testing, reporting, suggesting, starring, and helping shape Humidity Intelligence into a more reliable Home Assistant, HACS custom integration.

And again, thank you to @Yncensus for the issue #66 suggestion that helped push the setup experience closer to how real Home Assistant homes are already organised.

Humidity Intelligence v2.0.7: UI Truth, PM2.5 Stability, Release Confidence

Choose a tag to compare

@senyo888 senyo888 released this 23 Jun 16:41
4dfe831

Humidity Intelligence v2.0.7 release banner

Humidity Intelligence 2.0.7 is a UI-truth, release-validation, and environmental-stability release.

This version strengthens the contract between backend runtime truth, generated dashboards, diagnostics, and release checks. It fixes PM2.5 aggregate entity normalization, hardens generated-card validation so stale entities are caught without false positives, and records the 2026-06-23 HA Lab advisory validation pass for the final v2.0.7 release-readiness line.

Highlights

  • Promoted integration metadata to stable 2.0.7.
  • Fixed PM2.5 aggregate runtime truth so HI-owned PM2.5 aggregate entities use canonical pm25 slugs instead of Home Assistant dotted-name pm2_5 slugs.
  • Added PM2.5 normalization conflict reporting through diagnostics, self_check, and v205_release_check.
  • Hardened generated-card entity validation so stale entity IDs embedded in exported YAML, JavaScript strings, and card expressions are detected.
  • Filtered generated-card release-validation extraction so JavaScript service names, predicate prefixes, object properties, and entity-prefix strings no longer produce false release-check failures.
  • Improved generated V2 Current Air Control truth handling so degraded or unavailable telemetry no longer renders as normal/ready.
  • Kept generated UI aligned to backend truth: alert/CO red control-row styling follows selected runtime truth, while degraded or unmapped candidates stay in reason text.
  • Added GitHub Pages search-discovery routing while keeping the repository, releases, Wiki, and UI gallery as the public source-of-truth surfaces.
  • Documented HA Lab as advisory Operational Beta Validation Infrastructure without making lab evidence release authority.
  • Sanitized generated card templates, gallery exports, and fixtures so public artifacts avoid maintainer-local entities and private details.

Upgrade Notes

No manual migration is required for most users.

After updating through HACS or file replacement, restart Home Assistant so the new integration package is loaded and PM2.5 aggregate entity-ID normalization can run.

If you use custom household level names, review the new Level 1 / Level 2 display-label settings in setup Zones or post-configuration Zone Options. These labels are display-only: they affect config-flow text, diagnostics/support summaries, and generated-card labels, but they do not rename entities, helpers, zones, outputs, runtime lanes, or entity IDs. If left unconfigured, HI falls back to Level 1 and Level 2.

If your dashboard uses pasted Manual cards, run:

service: humidity_intelligence.dump_cards
data: {}

Then re-copy the generated YAML into your Manual cards and refresh the dashboard/browser cache. Already-pasted Manual cards are static and do not inherit backend entity, label, or layout changes automatically.

  • Added configurable display-only Level 1 / Level 2 labels for setup, Zone Options, diagnostics/support summaries, and generated-card text, with safe fallback to Level 1 / Level 2.

Validation Notes

Release-readiness validation included repository sanity checks, version governance, compile checks, generated-card sanity checks, documentation/banner checks, proposal-link checks, HACS/manifest metadata sanity, diff whitespace checks, and tracked secret scanning.
HA Lab advisory validation passed for commit 55dc2b9 after lab-only deploy and maintainer-performed restart. The advisory pass covered lab identity, HI presence/diagnostics, scenario-matrix read-only baseline, and Stage 3 six-sensor runtime-readiness checks.
No stable-instance access, Home Assistant service calls, helper mutation, dashboard mutation, output writes, restart, or reload were performed by Codex during HA Lab validation.

Runtime and UI Impact

Deterministic lane ordering is preserved.
Entity semantics are unchanged except for the intended PM2.5 aggregate canonical-slug normalization.
Generated dashboard behaviour remains backend-truth driven.

Rollback remains a normal Git/HACS rollback to the previous release, followed by the normal Home Assistant restart required to load the reverted package.

Humidity Intelligence v2.0.6: Safer Telemetry, Clearer Control

Choose a tag to compare

@senyo888 senyo888 released this 06 Jun 07:20
7d7e8c6

Humidity Intelligence v2.0.6 release banner

Humidity Intelligence 2.0.6 is a stability and truth-alignment release.

This version focuses on making HI clearer when something is wrong, quieter when control should stand down, and more honest in the dashboard about what the backend actually decided.

The biggest change is safer degraded behavior: if required humidity or configured temperature telemetry is unavailable, HI now exposes an explicit telemetry_unavailable runtime mode instead of letting missing data look like a normal all-clear state.

Highlights

  • Added explicit telemetry_unavailable runtime truth for missing humidity or configured temperature telemetry.
  • Fixed global gate preemption so stale humidity-danger alert context and Current Air Control chips clear when the gate takes authority.
  • Fixed CO emergency clear timing so HI rechecks at the two-minute clear deadline instead of waiting for the next normal control interval.
  • Improved setup/options navigation, including safer Cancel behavior and Zone 2 trigger ownership labels.
  • Added local HI-only snapshot services for advanced maintenance: create_local_backup and list_saved_versions.
  • Improved HI House Humidity Drift 7d dependency handling with clearer diagnostics, self-check, release-check, and Home Assistant Repairs guidance.
  • Retuned Spring and Summer temperature chip bands while keeping seasonal comfort boundaries backend-owned.
  • Added backend simulation validation for HI Air Control Mode and HI Air Control Reason.
  • Added Community Ideas & Proposals intake, refreshed support guidance, and tightened release/security validation.

Upgrade Notes

No migration is required.

After updating, reload or restart Home Assistant. If you use pasted Manual dashboard cards, run:

service: humidity_intelligence.dump_cards
data: {}

Then re-copy the generated YAML and refresh the dashboard/browser cache so the Current Air Control card reflects the latest runtime truth.

Maintenance Notes

The new local snapshot services are intentionally narrow. They create and list package-local HI snapshots only. They are not Home Assistant backups, do not restore code, do not intercept HACS updates, and do not change running code until Home Assistant is restarted after any separate manual file work.

Lane ordering, AQ behavior, humidifier behavior, alert hierarchy, migration behavior, HACS update behavior, and normal runtime-control semantics remain unchanged except for the explicit telemetry-unavailable truth correction.

If you are updating from 2.0.5, this should feel like the same Humidity Intelligence engine, but with safer missing-data handling, clearer diagnostics, and a cleaner support path when something in the Home Assistant environment needs attention.

Humidity Intelligence v2.0.5 — Your Environmental Stability Option

Choose a tag to compare

@senyo888 senyo888 released this 21 May 17:39
7aec4a6

Humidity Intelligence v2.0.5

Humidity Intelligence v2.0.5 continues the shift toward a calmer, deterministic environmental control system for Home Assistant.

This release focuses heavily on configuration experience, diagnostics, runtime coherence, supportability, and long-term maintainability, without changing the core runtime philosophy that defines Humidity Intelligence.

v2.0.5 is about making the system easier to understand, easier to configure, easier to support, and safer to evolve over time.

Inspired by the project’s broader philosophy of environmental stability, explainable runtime behaviour, and truth-based UI surfaces.


What Humidity Intelligence Actually Does

Humidity Intelligence is a domestic environmental control engine that continuously interprets telemetry from around the property — humidity, temperature, air quality, condensation risk, mould risk, drift behaviour, seasonal targets, and safety conditions — then coordinates smart devices to gently stabilise the environment over time.

Using connected sensors and devices, Humidity Intelligence can intelligently manage:

  • air purifiers
  • extractor fans
  • dehumidifiers
  • humidifiers
  • ventilation systems
  • visual alert lighting

The system continuously evaluates environmental conditions and resolves one explainable outcome per evaluation cycle using deterministic runtime logic instead of competing automation chains.

The result is a Home Assistant environment that feels calmer, more stable, and easier to reason about.


v2.0.5 Highlights

Cleaner Configuration Experience

The configuration flow has been reorganised around a much simpler philosophy:

essentials first, advanced tuning second.

Advanced controls now live behind collapsible sections that expand and retract instantly without requiring awkward intermediate submit cycles.

This keeps first-time setup approachable while still exposing the deep runtime tuning Humidity Intelligence is known for.

Advanced controls remain available for:

  • custom humidity targets
  • temperature comfort bands
  • control loop intervals
  • slope source overrides
  • AQ tuning
  • fan levels
  • lane removal
  • visual alert tuning
  • startup UI refresh behaviour
  • generated card visibility

Native Home Assistant Diagnostics

v2.0.5 introduces native Home Assistant diagnostics integration.

Users can now safely download a redacted diagnostics bundle directly from the integration entry and attach it to GitHub issues without exposing secrets or private credentials.

This dramatically improves issue triage quality while reducing support friction.

Diagnostics now include:

  • runtime lane state
  • active reason context
  • target profile information
  • alert resolution
  • unavailable entities
  • frontend dependency status
  • drift dependency health
  • generated UI summary
  • zone mapping diagnostics

This replaces the old “paste giant debug output into GitHub” era with something far more professional and maintainable.


House Humidity Drift Dependency Visibility

One subtle but important improvement in v2.0.5 is explicit visibility for the canonical 7-day humidity drift dependency.

If the statistics sensor:

sensor.house_humidity_mean_7d

is missing, unavailable, or invalid, Humidity Intelligence now surfaces this clearly across:

  • diagnostics
  • self-check
  • release validation
  • sensor attributes
  • runtime reporting

Instead of silently failing or pretending conditions are healthy, the system now exposes the degraded state directly.

That’s a very “Humidity Intelligence” kind of change.


Temperature Slope Runtime Fixes

Calculated slope telemetry now behaves far more reliably during startup and entity restoration.

v2.0.5 fixes several long-standing edge cases involving:

  • restored-but-unavailable slope sensors
  • delayed initial slope state publishing
  • incorrect fallback entity mapping
  • registry ID preference handling

Registered Home Assistant entity IDs are now preferred correctly, improving both diagnostics and UI consistency.


Cleaner Default UI Behaviour

New V2 dashboard exports now default to a cleaner presentation mode.

The expandable output-details panel is hidden by default unless explicitly enabled via:

Show output entity details

This keeps the generated UI focused on environmental state and runtime reasoning without overwhelming newer users with low-level entity detail immediately.

For users who want deeper inspection and debugging, the panel can still be enabled at any time.


Runtime Philosophy Remains Unchanged

One important point:

v2.0.5 does not alter the deterministic control engine itself.

The following remain intentionally stable:

  • canonical lane ordering
  • alert hierarchy
  • CO emergency priority
  • humidifier independence
  • runtime truth semantics
  • generated card architecture
  • deterministic single-lane resolution
  • reason panel behaviour

This release strengthens the system around the runtime.


Environmental Stability Over Automation Chaos

Humidity Intelligence continues to evolve around a core belief:

a home should behave like a coordinated environmental system.

The engine evaluates telemetry, applies explicit priority logic, resolves one explainable control path, and surfaces that truth directly into the UI.


Upgrade Notes

After upgrading to v2.0.5:

  • refresh generated dashboards if using Manual cards
  • run:
    humidity_intelligence.dump_cards
  • paste updated YAML into existing dashboard cards
  • refresh browser/app cache if old layouts persist

If migrating from older versions, verify the canonical 7-day drift statistics sensor still exists:

sensor:
  - platform: statistics
    name: "House Humidity Mean 7d"
    entity_id: sensor.hi_house_avg_humidity
    state_characteristic: mean
    max_age:
      days: 7

Thank You

Huge thanks to everyone testing, reporting edge cases, validating runtime behaviour, and helping shape Humidity Intelligence into something far more coherent.

This project keeps moving toward a future where Home Assistant environments become:

  • explainable
  • deterministic
  • stable
  • observable
  • environmentally aware

…and honestly, that future feels pretty exciting.

Humidity Intelligence v2.0.4

Choose a tag to compare

@senyo888 senyo888 released this 08 May 20:16
1c8b43d

v2.0.4 is a major stability and clarity release for Humidity Intelligence V2.

This update tightens the alert system so humidity, mould, and condensation alerts now resolve back to the originating room and configured zone before applying control. That means alert escalation now uses the correct zone boost level instead of relying on ambiguous or hard-coded behaviour.

Highlights

  • Added zone-bound alert handling for humidity, mould, and condensation alerts
  • Added clearer alert hierarchy and multi-alert conflict handling
  • Humidity Danger now follows the active seasonal/custom target profile high-risk threshold
  • Simplified alert configuration by removing custom trigger entities and custom binary sensors
  • Improved Current Air Control chips with clearer alert context and less duplicated noise
  • Added optional temperature chip row with seasonal/custom comfort colouring
  • Added post-configuration editing for zone thresholds and temperature comfort bands
  • Improved startup UI refresh reliability
  • Expanded diagnostics for alert mapping, target profiles, unavailable entities, warnings, and visual alert configuration
  • Visual alerts now flash 10 times, restore the previous light state, wait 30 minutes, and repeat only while the same alert remains active
  • Added clearer dashboard export guidance for Manual card users

Manual dashboard update required

If you already use a Manual dashboard card, run:

service: humidity_intelligence.dump_cards

Then copy the generated YAML into your existing Manual card and hard-refresh Home Assistant.
This is required to see the new v2.0.4 alert chips, reason panel changes, temperature chip options, and updated UI mapping.
Upgrade note
No breaking schema changes are introduced, but users should refresh/export their dashboard cards after updating.

v2.0.4 focuses on making alert behaviour safer, clearer, and more deterministic — especially when multiple rooms, zones, or risk conditions are active at the same time.

🚀 v2.0.3 — Easier Setup, Fewer Headaches

Choose a tag to compare

@senyo888 senyo888 released this 25 Apr 09:27
f5ab870

This update is all about making Humidity Intelligence easier to install and get working properly, especially if you’re newer to Home Assistant.

A lot of issues people run into aren’t bugs — they’re usually missing or misconfigured frontend dependencies.

👉 v2.0.3 helps guide you through that so things “just work”.


✨ What’s Improved

🧩 Dependencies Are Now Part of Setup

  • Dependencies are now a proper step in the setup process
  • You can revisit them anytime after install
  • Which makes it easier to track what's missing.

🔗 Quick Links to Install What You Need

  • Each dependency now includes a direct link to its GitHub page
  • Makes it easy to:
    • install via HACS
    • fix UI issues quickly

📘 Clearer README Instructions

  • Improved guidance for installing via HACS
  • Better explanation of required frontend components
  • Easier to follow from start to finish

🏷️ Cleaner Badges & Compatibility Info

  • “Custom Integration” badge is now clearer
  • Home Assistant version support is now:
    • automatically synced from manifest.json
    • so it’s always accurate

⚠️ Upgrade Notes

  • ✅ No breaking changes
  • ✅ No configuration changes needed
  • ✅ Safe to update from any v2.0.x version

This is a quality-of-life update.


🙏 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
These tools are foundational to the Home Assistant ecosystem, and this project would not hit the same level without them.


💡 Final Thought

If your dashboard ever looked “off” or didn’t style correctly…

…it probably wasn’t your fault.

It was missing dependencies.

v2.0.3 helps you catch that early — and fix it fast.

v2.0.2 — Season-Aware Semantics & Full Humidity Reasoning

Choose a tag to compare

@senyo888 senyo888 released this 20 Apr 16:09
e25ed45

v2.0.2 — Season-Aware Semantics & Full Humidity Reasoning

This release corrects one of the most important aspects of V2:

Humidity is now evaluated relative to the active seasonal target — not a static assumption.

Everything from badge colour to risk modelling and humidifier behaviour now aligns with that principle.


Core Changes

Target-Relative Humidity States

Humidity badge logic now reflects actual environmental intent:

  • below_target → too dry
  • in_target → stable
  • above_target → drifting high
  • high_risk → intervention required

for a more accurate interpretation of seasonal expectations.


Active Season Now Visible

The UI now surfaces the active target profile:

  • Winter
  • Spring
  • Summer
  • Autumn
  • Custom

You can now see why a target exists.


Season-Aware Risk Modelling

Condensation and mould detection now use:

  • seasonal thresholds
  • deterministic evaluation
  • context-aware interpretation

This removes false positives and improves real-world accuracy.


Full Humidifier Reason Telemetry

Humidifier behaviour is now fully explainable:

  • active lane scope
  • trigger condition
  • live values vs thresholds
  • recovery / stop logic

Expanded Runtime Debug Logging

Added structured logs for:

  • active target profile selection
  • seasonal adjustments
  • humidity classification
  • humidifier trigger + stop events

This makes tuning and diagnostics significantly easier.


Why This Matters

V2 is not a dashboard — it’s a deterministic control engine.

This release brings the UI, logic, and reasoning into full alignment with that model:

  • clearer state interpretation
  • fewer misreads
  • better trust in system decisions

⚠️ After Updating

To avoid stale UI state:

  1. Refresh the frontend
  2. Run:
    service: humidity_intelligence.refresh_ui
    
  3. Rebuild / re-export dashboards if applicable

If badge colours or targets look unchanged — it’s caching, not the runtime.


Compatibility

  • No breaking changes
  • Fully compatible with existing V2 configurations