v0.8.5
This commit is contained in:
+18
-42
@@ -1,53 +1,29 @@
|
||||
# GREE Controller v0.8.4 - build and validation report
|
||||
# GREE Controller v0.8.5 - build and validation report
|
||||
|
||||
## 0.8.4 Scheduled Temporary Quick Thermostat start and ownership hardening
|
||||
## 0.8.5 Temporary temperature-condition activation fix
|
||||
|
||||
Source baseline: v0.8.3.
|
||||
Source baseline: v0.8.4.
|
||||
|
||||
### Changes
|
||||
### Fix
|
||||
|
||||
- Added independent Temporary Quick Thermostat start rules: immediately, after a delay, or at an absolute date/time.
|
||||
- Delayed sessions are persisted without taking local thermostat ownership before `started_at`; the controller wakes at the scheduled start and activates the saved target then.
|
||||
- Duration, absolute finish validation, safety timeout and next-schedule-boundary calculations are anchored to the effective start time.
|
||||
- Added pending-session countdown/status to the Quick Thermostat button and modal; after activation the same control switches to the existing finish countdown/status.
|
||||
- Active Temporary Quick Thermostat targets keep priority over schedule transitions and schedule edits.
|
||||
- Direct device automations remain blocked by local thermostat ownership while the temporary session is active; group climate mode/preset actions are deferred for an actively owned zone, while group power state may change underneath and becomes effective after hand-back.
|
||||
- Before a delayed start, normal schedule/automation ownership is unchanged unless another pre-existing local/manual override already owns the zone.
|
||||
- Local Quick Thermostat ON can use the zone's last Heat/Cool mode when inherited house climate mode is `off`; whole-house master power remains authoritative.
|
||||
- Cancelling a pending session does not clear unrelated manual quick-control state.
|
||||
- Added Rust regression tests for delayed-session ownership, pre-start temperature conditions, schedule target priority and local Quick Thermostat operation with inherited house mode `off`.
|
||||
- Bumped controller and Home Assistant integration version to 0.8.4 and rotated the PWA service-worker cache key.
|
||||
|
||||
### Ownership/priority scenarios reviewed
|
||||
|
||||
| Scenario | Expected result |
|
||||
| --- | --- |
|
||||
| Delayed session before start | Normal schedule and automations continue; pending session owns nothing yet. |
|
||||
| Start time reached | Session acquires local thermostat ownership, enables the zone if needed and applies its saved target. |
|
||||
| Schedule transitions while active | Schedule may advance internally, but `manual_setpoint` from Temporary Quick Thermostat remains effective. |
|
||||
| Schedule edited while active | Generic schedule-boundary override timer is not re-armed, so the temporary target is not cleared. |
|
||||
| Direct-device automation while active | Suppressed by local thermostat ownership. |
|
||||
| Group mode/preset automation while active | Climate change is deferred for the owned zone; it cannot clear/change the temporary target. |
|
||||
| Group power automation while active | Group gate can change underneath, but local temporary ownership keeps the zone running; the gate applies after hand-back. |
|
||||
| Temporary finish | Local ownership is cleared and the currently applicable schedule/group/house state is recalculated. |
|
||||
| Session started from disabled zone | Zone is temporarily enabled, then restored to disabled and its unit is stopped after hand-back. |
|
||||
- Corrected Temporary Quick Thermostat temperature-condition activation detection.
|
||||
- `activated_at` now correctly marks a session as active for `temperature_reached` and `temperature_stable` evaluation.
|
||||
- Existing `local_thermostat_power == true` remains a compatibility/recovery marker for sessions persisted by earlier releases.
|
||||
- Future delayed sessions still cannot evaluate or complete their temperature condition before `started_at`.
|
||||
- The change directly addresses the v0.8.4 updater failures:
|
||||
- `temporary_stable_condition_requires_continuous_hold_time`
|
||||
- `temporary_stable_condition_resets_when_temperature_leaves_range`
|
||||
|
||||
### Validation executed in this environment
|
||||
|
||||
- `node --check web/app.js`
|
||||
- `node --check web/theme-init.js`
|
||||
- `node --check web/sw.js`
|
||||
- parsed all JSON files, including PL/EN language packs and Home Assistant manifest
|
||||
- checked duplicate HTML IDs
|
||||
- checked that newly referenced PL/EN translation keys exist
|
||||
- `python3 -m compileall -q home-assistant scripts make_zip.py`
|
||||
- `bash -n scripts/*.sh`
|
||||
- checked version consistency across Cargo.toml, Cargo.lock, README and Home Assistant manifest
|
||||
- JavaScript syntax checks for `web/app.js`, `web/theme-init.js`, `web/sw.js`
|
||||
- JSON parsing for project JSON files
|
||||
- Python syntax compilation for Python sources
|
||||
- shell syntax checks for `scripts/*.sh`
|
||||
- version consistency checks
|
||||
- regenerated and verified `FILE_MANIFEST.sha256`
|
||||
- tested the final ZIP with `unzip -t`
|
||||
- final ZIP integrity check
|
||||
|
||||
### Rust toolchain note
|
||||
|
||||
This execution environment does not contain `cargo`, `rustc` or `rustfmt`, so the Rust regression tests and full compilation cannot be executed here. The tests are included in `src/engine.rs`, and the installer/updater still runs `cargo test --all-targets` before replacing the running service.
|
||||
|
||||
---
|
||||
This environment does not contain `cargo`, `rustc` or `rustfmt`, so Rust tests cannot be executed here. The supplied deployment log confirms v0.8.4 compiled and 46/48 tests passed; this hotfix changes the activation predicate responsible for the two failures. `scripts/update.sh` will run the full Rust test suite before replacing the service.
|
||||
|
||||
Reference in New Issue
Block a user