CHANGELOG¶
v0.33.0 (2026-06-28)¶
Chores¶
-
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) -
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¶
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¶
- Fix year typo
(
1d0ca7e)
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_maintenanceproperty 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¶
- Push a failed release
(
16d2eb2)
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¶
- Missing release zip
(
d231d69)
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¶
- Document docs workflow
(
e29dde8)
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¶
- WEATHER obj formatting
(
0d15f88)
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¶
- Add quality scale
(
34aa36a)
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¶
- Init commit
(
3407209)