This commit is contained in:
Mateusz Gruszczyński
2026-08-27 17:17:05 +02:00
parent 65eaf50fb6
commit 62514258d3
16 changed files with 205 additions and 43 deletions
+24 -2
View File
@@ -1,8 +1,8 @@
# GREE Controller v0.7.11 - build and validation report
# GREE Controller v0.7.12 - build and validation report
## Scope
Version 0.7.11 includes the previous climate-group, whole-house and zone-profile fixes plus a strict separation between local quick-thermostat ownership and true physical/manual-device takeover. Global controls are consolidated, group control stays immediately below them, and lower-priority dashboard sections are collapsed on demand.
Version 0.7.12 adds a timed hand-back for per-zone Quick Thermostat OFF while preserving the strict separation between local thermostat ownership and true physical/manual-device takeover. After 15 minutes the zone returns to the current group/schedule logic instead of restoring stale physical state.
## Implemented changes
@@ -436,3 +436,25 @@ Validation for this package is recorded after the final archive/manifest checks.
- Cargo package and Home Assistant manifest report version `0.7.11`; PWA cache metadata was rotated for this release.
- The reported Rust E0505 test case was corrected with borrow-only `std::slice::from_ref(&zone)` calls.
- This packaging environment does not provide `cargo`, `rustc` or `rustfmt`; target/CI must run `cargo test --all-targets` and `cargo build --release` before deployment.
## 2026-08-27 v0.7.12 timed local-thermostat resume
- Added persisted `local_thermostat_resume_at` to each zone.
- Local Quick Thermostat ON has no timeout; local OFF powers the unit down immediately and schedules automatic automation hand-back after exactly 15 minutes.
- The control loop now sleeps only until the earlier of its normal interval or the nearest local-resume deadline, so the 15-minute hand-back is not delayed by a long zone interval and remains restart-safe.
- Expiry clears local power ownership and quick preset/setpoint overrides, then re-evaluates the current group, house mode, schedule, temperature and hysteresis. It never restores a stale physical ON/OFF snapshot.
- Physical/pilot `device_manual_override` is intentionally untouched by the local timer.
- Web UI displays a live `MM:SS` countdown and **Resume now** during the local-OFF window.
- Persisted 0.7.10/0.7.11 local-OFF records without a deadline receive a fresh 15-minute deadline on first control cycle after upgrade.
- Home Assistant zone attributes expose `local_thermostat_resume_at`.
- Added a unit test that verifies local hand-back clears local quick state without clearing a real physical-device takeover.
## Final validation for v0.7.12
- Web JavaScript passes `node --check`.
- Home Assistant modules and helper scripts pass `python3 -m py_compile`.
- JSON and TOML metadata parse successfully; Polish and English translation packs have identical key sets.
- Shell scripts pass `bash -n`; HTML parses and CSS braces are balanced.
- Source references for `local_thermostat_resume_at` are consistent across model, API, engine, Web UI, control-plan output and Home Assistant attributes.
- Version metadata is aligned at `0.7.12` and the PWA cache key is rotated.
- This packaging environment still has no `cargo`, `rustc` or `rustfmt`; target/CI must run `cargo test --all-targets` and `cargo build --release` before deployment.