v3.2.0-beta.14 — OTA fix + idempotent Start/Stop
Pre-release
Pre-release
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_chaas 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: measurementon anenergysensor → now none). - Release binaries no longer report
-dirty— the version script ignores the regenerated web-page headers. (peter-mcc, #13)
Changed
r_lseread 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).