Skip to content

v0.9.36b23

Pre-release
Pre-release

Choose a tag to compare

@btli btli released this 03 Jul 04:57

Bug fixes

  • Truncated holding-register responses now rejected on both dongle and Modbus TCP transports (#203). Previously a short-but-valid response silently produced a partial parameter dict, skipping the sticky-parameter merge and blanking entities for the full cache TTL. Short reads now raise inside the retry loop (transient truncation recovers; persistent truncation surfaces as a failed range). pymodbus does not validate response length against the requested count — guard added.
  • Positional fallback battery key evicted once the serial becomes readable (#204). A cold-start read with valid electrical data but all-zero serial registers mints a pos:{N} accumulator key; it is now evicted symmetrically with the {serial}@pos{N} reconciliation when a valid serial reads at that position — previously it persisted forever as a duplicate battery with frozen data.
  • Cloud-mode schedule getters return real values (#205). HybridInverter.get_*_schedule() read reg_N keys that the cloud API never returns (it returns named HOLD_* params), so cloud-only callers always got 00:00-00:00. The getter now delegates to the named-parameter cloud path; local behavior unchanged.
  • Link-down probe no longer runs the full combined input read (#205). Degraded polls now issue a single cheap runtime probe instead of all six input-register groups, cutting dead-link poll pressure ~6x. Recovery detection unchanged; energy/battery repopulate on the next healthy cycle.

Maintenance

  • Dead-code cleanup (#202): removed two orphaned wall-clock elapsed helpers superseded by the monotonic tracking path, an unwired coordinate obfuscator, and stale comment blocks (−26 lines, zero functional change).

Follow-up tracked in #206.