v0.7.13
This commit is contained in:
+28
-3
@@ -1,10 +1,17 @@
|
||||
# GREE Controller v0.7.12 - build and validation report
|
||||
# GREE Controller v0.7.13 - build and validation report
|
||||
|
||||
## Scope
|
||||
|
||||
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.
|
||||
Version 0.7.13 hardens Quick Thermostat ownership against polling/firmware-settling races, disables Global when no global Heating/Cooling mode is selected, and adds live counters for UDP frames received from configured GREE units. The 0.7.12 timed hand-back behavior remains unchanged.
|
||||
|
||||
### Backend hand-back correction
|
||||
### 0.7.13 race protection and diagnostics
|
||||
|
||||
- Per-zone Quick Thermostat changes are serialized with polling using the same per-device operation lock, preventing a stale poll from restoring a false physical/pilot takeover after the user explicitly selects local thermostat control.
|
||||
- Recent controller-requested states and their pre-command baselines are kept for a bounded settling window, so delayed/out-of-order GREE status frames are not mistaken for remote-control changes.
|
||||
- The Quick Thermostats **Global** button is disabled while the global house mode is neither Heating nor Cooling.
|
||||
- Settings shows live total and per-device UDP receive counters, updated over the existing WebSocket event stream.
|
||||
|
||||
### Existing 0.7.12 hand-back correction
|
||||
|
||||
- Local thermostat ON/OFF now goes through one backend helper, so every new OFF action creates a fresh authoritative 15-minute deadline and ON always cancels it.
|
||||
- A physical/direct-device takeover temporarily suspends expiry of an existing local-OFF hand-back. Returning the unit to the previous OFF state re-arms the countdown from that return moment instead of continuing an old timer.
|
||||
@@ -464,3 +471,21 @@ Validation for this package is recorded after the final archive/manifest checks.
|
||||
- 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.
|
||||
|
||||
|
||||
## 2026-08-27 v0.7.13 quick-thermostat race protection and frame counters
|
||||
|
||||
- Quick Thermostat changes from Web/Home Assistant are serialized with the same per-device operation lock used by polling/manual-takeover detection.
|
||||
- Controller-originated climate changes retain a bounded settling history of requested and pre-command states so delayed/out-of-order GREE status frames do not falsely trigger physical/pilot takeover.
|
||||
- Dashboard Quick Thermostat **Global** is disabled whenever the global house mode is neither Heating nor Cooling.
|
||||
- Settings exposes live total and per-device UDP receive counters for configured GREE units via the existing WebSocket stream.
|
||||
- The Home Assistant zone `climate` entity remains the supported path for controlling one thermostat independently.
|
||||
|
||||
## Final validation for v0.7.13
|
||||
|
||||
- `node --check` passed for `web/app.js` and `web/sw.js`.
|
||||
- All JSON files parsed successfully; Polish and English language packs have identical 610-key sets.
|
||||
- Home Assistant Python modules and helper Python scripts pass `py_compile`; shell scripts pass `bash -n`.
|
||||
- `web/index.html` parses successfully and CSS brace balance passes.
|
||||
- Cargo package, Home Assistant manifest, README and PWA cache metadata are aligned at `0.7.13`.
|
||||
- The final SHA-256 file manifest and ZIP integrity are verified during packaging.
|
||||
- This packaging environment does not provide `cargo`, `rustc` or `rustfmt`; target/CI must run `cargo test --all-targets` and `cargo build --release` before deployment.
|
||||
|
||||
Reference in New Issue
Block a user