Skip to content

Fix the firmware reload, handshake faults and unusable versions - #50

Merged
Varitras merged 28 commits into
mainfrom
fix/firmware-reload-and-handshake
Nov 4, 2026
Merged

Varitras merged 28 commits into
mainfrom
fix/firmware-reload-and-handshake

Conversation

@Varitras

@Varitras Varitras commented Nov 4, 2026

Copy link
Copy Markdown
Owner
  • A firmware update installed through Home Assistant could be reported as failed although it worked. The reload for the new firmware now waits for the install to end and for a standing connection with a complete status.
  • A handshake that lacks a field ends the attempt and is retried. Setup names the field, and the debug log does when it lasts. Only a sign-in scheme the client does not know stays a refusal.
  • A firmware version reported empty, blank or not as text is ignored: the last good one stays, nothing reloads, and a blank version is no longer offered as an update.
  • Text the charger sends with a refusal is shortened to one line and has long numbers masked.
  • A scripted charger behind the real client, hub and entry tests whole sequences of connections at the shipped timings.

Started from inside the push, the unload closed the connection a firmware
install was waiting on, and tore the hub down under the running dispatch.
A missing or mistyped field ended in a timeout without a cause, or in an
answer built from an empty secret.
A refusal's message, an unknown hash name and a command's refusal went
out as sent: a serial in them, line breaks and any length.
A scripted charger behind the real client, hub and entry: one unusable
handshake must not end the reconnecting.
Refusing it for good left a charger that was only starting up unavailable
until a manual reload, behind a repair notice that did not apply.
The hub starts an install and sees it end, so a wait for that end belongs there, not in a flag the entry reads off the client.
With backoff and pause set equal the reader took the connection, so the path an install really takes went untested.
The new version can arrive with the status complete: the reload then closed the connection the install waited on, or ran into an outage with a reconnect under way.
A setup that found none took the first report for a change, and reloaded in a loop if a delta ended every status early.
Only a name the client does not know is a refusal. The reason for retrying now reaches the debug log, the one place left for it.
An empty or numeric report counted as a version: it reloaded on its own, and in a loop if every status carried it. A blank hash counted as a name in the same way.
The line for each reconnect showed None on every ordinary outage.
It kept a rule of its own: after an unusable report it showed no version, or a blank one, while the rest went on with the last good one.
Who connects first is a race, so one install says nothing about it.
A blank onv showed an update, and installing it sent the blank to the charger.
@Varitras
Varitras merged commit 744fa1d into main Nov 4, 2026
8 checks passed
@Varitras
Varitras deleted the fix/firmware-reload-and-handshake branch November 4, 2026 23:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant