Release 0.3.0
First part of Milestone 1: Forecast Error sensors scoring the thermal model against reality, forecast trajectories, Learning Progress and Last Sample sensors, rejected-sample and poll-outcome counters, plus lint and rollback-contract tests. README explains forecast accuracy, the 30-minute learning wait after a restart and where Developer Tools now lives. ROADMAP marks the items now backed by tests; AUDIT records the evaluation design and evidence. Still observation-only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
d2bd398a0f
commit
e59c08f586
5 files changed
+122
-12
No files matched your search
@@ -2,6 +2,50 @@
|
||||
|
||||
Engineering findings and test evidence behind each change are in [AUDIT.md](AUDIT.md).
|
||||
|
||||
## 0.3.0 — 2026-10-26
|
||||
|
||||
First part of Milestone 1: the integration now measures how accurate its thermal
|
||||
model is. Still **observation-only**; no new options. Upgrading from an earlier
|
||||
version: also read the notes of each version in between.
|
||||
|
||||
### Added
|
||||
|
||||
- Four sensors, **Heating MPC Forecast Error 15/30/60/120 min**: the thermal
|
||||
model's mean absolute error over the last 7 days, scored out of sample against
|
||||
what actually happened, using the relay's real ON/OFF history. Attributes show
|
||||
the bias, the error of a no-change forecast (`persistence_mae`), `skill` and
|
||||
per-room details. See README, "Forecast accuracy".
|
||||
- **Heating MPC Learning Progress** (% towards forecasts being used) and **Heating
|
||||
MPC Last Sample** (what the last poll did for learning, with English and Romanian
|
||||
state names), so learning activity is visible without opening attributes.
|
||||
- Room forecast entities: `forecast_15min` (temperature every 15 minutes over the
|
||||
horizon) and `plan_15min` (the proposed ON/OFF plan), labelled counterfactual.
|
||||
- Status: `rejected_samples` per room in `models`, `sample_results_since_start`
|
||||
counting how each poll was handled, and `sample_result: waiting_for_inputs` when
|
||||
the relay, thermostat, outdoor temperature or every room is missing.
|
||||
|
||||
### Changed
|
||||
|
||||
- The model is saved after each poll's forecasts are scored, with the forecast
|
||||
statistics (about 8 KB for five rooms, at most 18 KB).
|
||||
|
||||
### Upgrade notes
|
||||
|
||||
- Six new entities appear (four forecast-error sensors, learning progress, last
|
||||
sample). The error sensors stay unknown until forecasts can be scored: 15 minutes after
|
||||
start for the 15-minute sensor, 2 hours for the 120-minute one. Early numbers
|
||||
include the learning phase and are pessimistic.
|
||||
- Rollback to 0.2.x is safe: older versions ignore the new saved keys, and the six
|
||||
new sensors become unavailable (remove them in the entity settings if you roll back
|
||||
permanently).
|
||||
|
||||
### Development
|
||||
|
||||
- Bug-finding lint (ruff: pyflakes, bugbear) in the checks and CI.
|
||||
- Tests for restoring a model saved by 0.2.1 and for 0.2.1 being able to read
|
||||
today's saved model.
|
||||
- `.DS_Store` files are ignored and rejected by the package check.
|
||||
|
||||
## 0.2.3 — 2026-10-26
|
||||
|
||||
A stale or failed room sensor no longer pauses the whole integration. Still
|
||||
|
||||
Reference in new issue
Block a user