Skip to content

v0.9.36b25

Pre-release
Pre-release

Choose a tag to compare

@btli btli released this 04 Jul 12:55

v0.9.36b25 (pre-release)

Fixed

  • Misrouted dongle responses no longer permanently disable Fast-mode read coalescing (joyfulhouse/eg4_web_monitor#320, PR #211): the WiFi dongle proxies cloud traffic and can hand the local client a response meant for the cloud server (valid CRC, wrong serial / Modbus function / start register) — or an unsolicited heartbeat frame sharing the same 0xA1 0x1A prefix. These raised generic TransportReadError and tripped the probe-once coalescing latch, silently reverting the connection to conservative grouped reads until reload.
    • New TransportResponseMismatchError classifies cross-request validation failures (serial / Modbus function / register and the TCP function byte, now validated request-aware — heartbeats 0xC1 and proxied param frames 0xC3/0xC4 are rejected as mismatches instead of mis-parsed).
    • A coalesced read hitting a mismatch now falls back to plain grouped reads for the cycle and re-probes after a ~5-minute cooldown — no permanent latch. Genuine refusal signatures (Modbus exceptions, timeouts, short-but-well-formed responses = the old ~40-register firmware cap) still latch permanently as designed.
    • The exception subclass survives the dongle retry loop; both coalescing fallback handlers now build an explicitly plain retry plan.

2659 tests passing. mypy clean (94 source files).