Skip to content

CHANGELOG

v0.33.0 (2026-06-28)

Chores

  • Bump actions/checkout from 6.0.3 to 7.0.0 (#15, 01a09f0)

  • Bump https://github.com/astral-sh/ruff-pre-commit from v0.15.15 to 0.15.16 (#10, b16ebfe)

  • Bump python-semantic-release/publish-action from 68eaac9f1f594e9ec4b985245d06355734f43eea to 310a9983a0ae878b29f3aac778d7c77c1db27378 (#12, 13ecf4f)

  • Bump the python-tooling group across 1 directory with 4 updates (#18, 5a273d5)

  • Bump zeroconf from 0.148.0 to 0.149.16 (#17, 983d05e)

  • Cap requires-python <3.15 and uv lock --upgrade (unblocks Dependabot security updates; move syrupy snapshots to snapshots (33d6c6f)

Code Style

  • Align all Markdown tables to improve formatting consistency across documentation, add mdformat (d69085d)

Features

  • Repair when AC drain protection's sensor is configured but unavailable (886bfa1)

Testing

  • Assert coordinator-not-shutdown on failed unload (HA-version-robust) (91f096b)

  • Restore snapshot dir to snapshots/ for HA syrupy extension (fea9394)

v0.32.0 (2026-06-28)

Chores

  • Bump codecov/codecov-action from 6.0.1 to 7.0.0 (#11, 68a4942)

Features

  • Add AC drain protection config along with tests and documentation (301bdb3)

v0.31.2 (2026-06-06)

Bug Fixes

  • Clear all repairs on unload, prune removed-device entities, pin MPC diag params (bf96b8f)

v0.31.1 (2026-06-06)

Bug Fixes

  • Make MPC diagnostic reads safe against the executor thread (eb57905)

v0.31.0 (2026-06-06)

Chores

  • Declare platinum quality scale and cap scipy below 2.0 (6b1d012)

Documentation

Features

  • Surface a repair when forecast preconditioning can't fetch a forecast (b57ce40)

Refactoring

  • Lazy-import scipy so non-MPC installs never load it (cbef557)

v0.30.1 (2026-06-06)

Bug Fixes

  • Clear per-device repair issues on entry unload and mode change (9c86fc8)

Documentation

  • Fix ADR-0001 date and de-version the ADR-0006 example (8bbeaa5)

  • Fix internals drift (adapter/profile model, store contents, MPC equation) (0138973)

Refactoring

  • Name the MPC per-step residual in one place (4959202)

Testing

  • Guard that every repair key has a strings.json entry (dcd7581)

v0.30.0 (2026-06-06)

Documentation

  • Add a Decisions section and backfill ADRs 0001–0007 (efc233f)

Features

  • Flag a TRV whose MPC model fits persistently poorly (234a206)

Refactoring

  • Resolve per-device behaviour through a DeviceProfile seam (ba00a87)

v0.29.0 (2026-06-06)

Chores

  • coverage: Raise the gate to 97% and mark the import fallback (32a1369)

Features

  • Flag AC-dependent settings that can't act on the configured hardware (eb3b7c7)

Testing

  • Cover the window recheck timer, forecast defenses, and guard paths (12c288b)

v0.28.7 (2026-06-05)

Bug Fixes

  • Ignore a stale forecast cache instead of preconditioning on dead data (f9c0b1a)

Chores

  • Expand ruff ruleset (bandit, pylint, pytest-style + 14 free groups) and fix findings (e3f3e91)

Documentation

  • Fix post-extraction attribution drift and clarify mutation scope (af40217)

  • Record tuning-constant rationale, test-helper preconditions, and config migration how-to (5ffa0d1)

Refactoring

  • Add last_maintenance property for diagnostics and replace direct access to _last_maintenance (e53813a)

  • Enum membership, comprehensions, no throwaway runtime construction (0a9b8f1)

  • Extract LearnedStateStores (persistence) from the coordinator (af0332b)

  • Extract WeatherAdaptation from the coordinator (d954161)

  • Extract WindowMonitor from the coordinator (5af3a5a)

  • test: Route all coordinator-internal access through helpers, enforced via SLF001 (0b03c4d)

v0.28.6 (2026-06-05)

Bug Fixes

  • Tolerate corrupt restore data (boost deadline type check, MPC drop warning) (102f4bd)

v0.28.5 (2026-06-05)

Bug Fixes

v0.28.4 (2026-06-05)

Bug Fixes

  • Handle mid-boost deselection by restoring to previous preset if available (a36329a)

  • Handle mid-boost deselection by restoring to previous preset if available (1bf1384)

Continuous Integration

  • Add backfill-releases workflow to retroactively update GitHub Releases (0b62b45)

  • Add CodeQL workflow for SAST and README badge integration (4681ad2)

  • Add workflows for OpenSSF Scorecard and Dependabot auto-merge (7e5b892)

  • Auto-close tracking issues on recovery for canary workflows (9761a84)

  • Enhance workflows with tighter permissions, Sigstore bundles, and SECURITY.md (aa9fd7c)

  • Exclude syrupy snapshot tests from HA floor runs, update paths (b6a8f5c)

  • Fix packaging process (be180e6)

  • Release via a dedicated GitHub App to pass the main ruleset (2dc94a4)

  • Remove backfill-releases workflow as it is no longer needed (49a56bf)

v0.28.3 (2026-06-05)

Bug Fixes

  • Support the documented HA floor (2025.2) on older installs (74f378e)

Continuous Integration

  • Path-scoped jobs, HA floor canary, timeouts, concurrency, failure issues, actionlint (1a71122)

Documentation

  • Clarify Python version gates and their roles in dev setup (1ed279a)

v0.28.2 (2026-06-04)

Bug Fixes

  • Keep status initializing while devices are still joining after restart (19f9f82)

Documentation

  • Sync feature tour, persistence, and entity reference with recent features (d8275bc)

Refactoring

  • Centralize refresh helper and isolate write operations in coordinator (5c23a48)

v0.28.1 (2026-06-04)

Bug Fixes

Refactoring

  • Extract events, supervision, and repairs from the coordinator (311cc73)

v0.28.0 (2026-06-04)

Documentation

  • Unify browser-storage scope across versions for consistent cache management (e940af1)

Features

  • Manual-override takeover honors external device changes (8660158)

v0.27.0 (2026-06-04)

Chores

  • Add issue forms and PR template (34d5b3c)

  • Purge historical narration and dead DESIGN.md pointers from comments (2ed4bbf)

Continuous Integration

  • Add per-page revision dates, privacy plugin, and instant navigation to docs (6059169)

  • Expand link check to include issue/PR templates and docs-site chapters (c3073e3)

Documentation

  • Clarify dry-bulb fallback when humidity sensors are missing (b9c9c22)

  • Version-prefix absolute docs links and fix the TRV controller anchor (741afd3)

Features

  • Bus events for operational transitions with self-clearing notifications (0f466dd)

v0.26.0 (2026-06-04)

Features

  • Watchdog repair for devices that silently ignore commands (a5c8649)

v0.25.0 (2026-06-04)

Continuous Integration

  • Publish only released docs versions (28ab1a8)

Features

  • Boost preset with directional band push and timed auto-revert (b8b3e3c)

v0.24.0 (2026-06-04)

Features

  • Configurable preset selection in the config and options flows (6dbc29e)

v0.23.0 (2026-06-04)

Bug Fixes

  • Re-arm window recheck timer mid-grace (4513046)

Documentation

Features

  • Fold per-TRV MPC diagnostics into the learning-status sensor's attributes (56d381c)

v0.22.6 (2026-06-04)

Bug Fixes

  • Persist-limiter sync + earliest-deadline window recheck (accc2ee)

Continuous Integration

  • Dispatch versioned docs deploy from the release workflow (77f7ae3)

  • Update GH Actions to v5 for pages artifact and deployment (965cb33)

  • Weekly canary against Home Assistant pre-releases (650c2be)

Documentation

  • Accuracy fixes (7ad2e82)

  • Add debug logging setup instructions to README (4590c68)

  • Drop third-party comparisons (097eca0)

  • Fix comment (e2f144c)

  • Remove DESIGN, add mkdocs + GH pages (a9b67d2)

Testing

  • Kill mutmut survivors at the MPC dt boundary and fit-rejection guard (cc30384)

  • Pin MPC dt-cap boundary, Kalman recovery, tail-holding (db74a9a)

v0.22.5 (2026-06-04)

Bug Fixes

  • Clamp runtime settings to declared bounds + guard maintenance clock skew (1158ce0)

v0.22.4 (2026-06-04)

Bug Fixes

  • Survive store schema mismatches — versioned migration + downgrade discard (5fda8b5)

v0.22.3 (2026-06-04)

Bug Fixes

  • Bound runtime state — store eviction, window-timer pruning, forecast cap (6926e5d)

  • Rate-limit learned-state store writes (b6710ce)

Code Style

v0.22.2 (2026-06-04)

Bug Fixes

  • Harden MPC numerics — fit bounds, variance ceiling, gap re-anchor, restore validation (733dba2)

  • Tie fire-and-forget tasks to the config entry lifecycle (1016726)

Code Style

  • Predict in test_observer.py (4ffd68e)

v0.22.1 (2026-06-04)

Bug Fixes

  • Reject non-finite sensor values (nan/inf) in every numeric read (ea29985)

v0.22.0 (2026-06-04)

Features

  • Close quality-scale todos: translated errors, log-once outages, executor MPC, opt-in counters (b156d1d)

Testing

  • Simplify error raising in actuation rejection test (d07859e)

v0.21.0 (2026-06-04)

Chores

Continuous Integration

  • Update HACS brands handling for HA 2026.3 local icons (9396af3)

Features

  • Add entry removal cleanup and optimize entity updates (782ff06)

Refactoring

  • Shared state helpers, settings snapshot, pure runtime stats (44f0886)

Testing

  • Kill runtime-stats, Kalman, and preconditioning mutation survivors (6304f01)

v0.20.3 (2026-06-04)

Bug Fixes

  • Discard corrupt persisted MPC state instead of failing setup (a694dec)

Continuous Integration

  • Add config entry migration scaffolding, weekly link checks, and coverage component split (411aa43)

Refactoring

  • tests: Centralize TRV setup and calibration helpers in tests/ha/helpers.py (f19b1ed)

v0.20.2 (2026-06-04)

Bug Fixes

  • Upload HACS zip asset to release (1eb0f9a)

v0.20.1 (2026-06-04)

Bug Fixes

  • Ship and attest the HACS zip asset (ff1c584)

Continuous Integration

  • SHA-pin actions, guard release trigger, lint workflows with zizmor (68dbe73)

v0.20.0 (2026-06-03)

Features

  • mpc: Wire the Kalman observer into valve planning (3593556)

v0.19.2 (2026-06-03)

Bug Fixes

  • Extract per-device control flow and cycle context, compute AC bias error against the current cycle's home average (aa54c52)

Continuous Integration

  • Remove advisory "continue-on-error" for hassfest validation (8726404)

v0.19.1 (2026-06-03)

Bug Fixes

  • Update strings.json, enforce strings.json and translations/en.json sync in pre-commit and CI (abb4b39)

Continuous Integration

  • Restore changelog generation under PSR v10 (687910a)

  • Upload JUnit test results to Codecov Test Analytics (27eba16)

v0.19.0 (2026-06-03)

Features

  • Home-average trigger switch for fully independent rooms (86903ea)

v0.18.0 (2026-06-03)

Features

  • User-provided whole-home average sensors with source diagnostic (f203b30)

v0.17.0 (2026-06-03)

Features

  • Raise a repair when the control cycle keeps failing (10434fb)

v0.16.0 (2026-06-03)

Bug Fixes

  • Improve forecast parsing robustness by adding strict type checks for response handling (9f17e24)

Documentation

  • Update README and DESIGN.md to reflect recent features and improvements (a9d41cc)

Features

  • Add forecast-based preconditioning for MPC TRVs; fetch hourly weather forecasts and optimize valve control to pre-heat ahead of cold spells; update docs, settings, and tests (7e1da1a)

v0.15.0 (2026-06-03)

Features

  • Rename "Adaptive comfort" to "Adaptive cooling comfort" and "Adaptive AC bias" to "Self-tuning AC bias" for clarity; update references, docs, and tests accordingly (a764205)

v0.14.0 (2026-06-03)

Features

  • Introduce per-area comfort band offsets for localized temperature adjustments and improved flexibility (262f5f0)

v0.13.0 (2026-06-03)

Features

  • Replace degraded binary sensor with status sensor for improved diagnostics and post-restart warm-up handling (129b962)

Testing

  • Add unit tests for status sensor behavior during warm-up and degraded states (7651565)

v0.12.1 (2026-06-03)

Bug Fixes

  • Ac heating assist to allow AC-only setups to function as full heat/cool thermostats, update docs and tests accordingly (b325422)

v0.12.0 (2026-06-03)

Chores

  • Update ruff version, fix type hint, and adjust manifest formatting (07b2fcd)

Continuous Integration

  • Add semantic release configuration and workflow for automated versioning (c954162)

  • Integrate Codecov for test coverage reporting and add badge to README (19beacb)

  • Update workflow to set read-only permissions (db8776e)

Documentation

  • Add badges to README and improve HACS installation instructions (534f991)

Features

  • Throttle AC setpoint writes to reduce radio spam and improve efficiency (8af8c95)

v0.11.0 (2026-06-03)

Chores