v0.9.36
v0.9.36 — stable
First stable release of the 0.9.36 line, consolidating the 28-beta hardening cycle. Changes since 0.9.36b28:
Added
eps_load_powerruntime property (PR #219, for joyfulhouse/eg4_web_monitor#335): exposes the cloudepsLoadPowerfield — the EPS-loads subset of the backup output. Semantics per the #222 consumption identity:peps/pEpsL1N/pEpsL2Ncarry the combined backup output (EPS loads + smart load);epsLoadPoweris the always-connected-loads portion; input registers 129/130 are the combined legs (no local subset source).- Transports overview in the README (PR #218, thanks @ivanfmartinez): cloud / WiFi-dongle / Modbus / hybrid, including the E-WIFI ENC encrypted-dongle incompatibility and the single-client-per-local-connection warning.
Improved
- Deduplicated dongle validation logging (PR #217, thanks @ivanfmartinez): raise-site debug lines that duplicated the exception messages are gone; the exception messages carry the full serial + expected/received frame context plus the misrouted-response interpretation — one self-explanatory log line per event.
Highlights of the 0.9.36 beta line
Fast-mode coalesced input reads with probe-once fallback and proven-capable cooldown semantics; request-aware dongle cross-request validation (serial/function/register/TCP-function) with misrouted-frame classification; Grid Peak Shaving family mapped with hardware-verified deci-kW scaling; Generator/Off-Grid/Peak Shaving schedule support with the portal's atomic writeTime endpoint; register 161 AC-charge-window mapping; [serial] frame-context logging; link-down parameter-fetch guards with cloud fallback.
2686 tests passing. mypy clean (94 source files).