Skip to content

v0.9.36b2 (beta) — dongle write resilience + cloud bank capacity

Pre-release
Pre-release

Choose a tag to compare

@btli btli released this 10 Jun 16:04
· 82 commits to feat/battery-control-mode since this release

Beta release for the eg4_web_monitor 3.4.0-beta.2 cycle. Install: pip install pylxpweb==0.9.36b2

Fixed

  • WiFi dongle parameter writes survive TCP connection drops without write wars (joyfulhouse/eg4_web_monitor#201): the dongle drops its TCP link mid-sequence during parameter writes; write_named_parameters now retries the ENTIRE read-modify-write sequence — tearing down the dead connection and RE-READING the register before re-writing, so a retry can never replay stale bit-field values over a concurrent writer's change. Request-level timeout resends were removed from the write path, and post-write verification mismatches are diagnostic-only.
  • Write ACK echo validation: FC06 ACKs must echo the written value and FC16 ACKs the register count. _parse_response() now parses the real 16-byte write-ACK layout; read-style ACK echoes still fall through to the read parser, so a legitimate ACK can never false-positive into a write error.
  • All multi-request reads serialized on the dongle's single TCP link: runtime/energy/battery/parameter/midbox/device-info reads now hold the operation lock — a coordinator poll can no longer interleave with a write retry/reconnect and misroute responses.
  • Cloud battery bank full/remaining capacity double-counted banks whose master module mirrors pack totals: BatteryBank.full_capacity/remain_capacity now prefer the BMS-reported bank pair (maxBatteryCharge/currentBatteryCharge), switching sources together on a single complete-pair gate. Open-loop systems (lead-acid / no BMS comms) and half-present pairs keep the legacy fields for BOTH properties. Live-verified on an 18kPV 3×280 Ah bank: 1400→840 Ah full, 822→496 Ah remaining.

Full details in CHANGELOG.md. 2136 tests, mypy --strict clean.