Skip to content

v3.2.0-beta.14 — OTA fix + idempotent Start/Stop

Pre-release
Pre-release

Choose a tag to compare

@botts7 botts7 released this 07 Jul 10:35

Fixed

  • OTA no longer false-rejects a valid upload as "truncated" (forcing USB re-flashes). The size check compared firmware bytes written against the request Content-Length — which for a multipart upload (HA integration + OTA page) includes the boundary + headers (a few hundred bytes not written to flash). On longer boundaries this tripped the tolerance and aborted a complete image. Fixed in both OTA handlers; Update.end()'s image checksum remains the real integrity guard. Verified on hardware: an upload the old check rejected now flashes cleanly. (gambys, ManuMaxGit)
  • Start / Stop are now idempotent (#23). A "start" while already charging, or a "stop" while already stopped, is now skipped instead of re-sent. Some chargers (e.g. Pulsar Plus USA firmware) treat w_cha as a toggle, so a redundant write flipped the state the wrong way (switch on-while-on → off). Now correct on every surface (HA, HomeKit, dashboard, MQTT). (quintani)
  • "Last Charge Burst" MQTT sensor no longer spams the HA log (invalid state_class: measurement on an energy sensor → now none).
  • Release binaries no longer report -dirty — the version script ignores the regenerated web-page headers. (peter-mcc, #13)

Changed

  • r_lse read heap hardening (#13) — frees its raw response right after parsing (peaks at two payload copies, not three), easing heap-fragmentation pressure at long uptime.

⚠️ If you're on an older beta and OTA fails as "truncated," flash this one via USB once — after that, OTA works normally again (this release contains the fix).