Skip to content

Include the panel's masked device tree in diagnostics - #338

Merged
cayossarian merged 8 commits into
prerelease/2.2from
feat/masked-tree-export
Nov 1, 2026
Merged

cayossarian merged 8 commits into
prerelease/2.2from
feat/masked-tree-export

Conversation

@cayossarian

Copy link
Copy Markdown
Member

Diagnostics downloads now carry the panel's device tree as published, with serial numbers, device ids and site details masked by the library (span-panel-api 3.8.0b2 / span-panel-api-schema-1 1.4.0b4). When no tree is available, device_tree is null and device_tree_unavailable says why: flat_data_model or not_described.

Also in this branch:

  • The EV charger charge-limit number is bounded by the range the charger declares (6–32 A on r202639), where it offered values the charger refuses. The declared range applies only where the limit is settable, and the minimum is clamped to the maximum.
  • Tests read the reference tree recaptured with ebus-panel-sim 0.9.0 (discharge-positive bess meter; declared but unvalued user charge limit).
  • Privacy tests check site values both outside the tree (redacted) and inside it (masked).
  • Release 2.2.0b5: pins span-panel-api==3.8.0b2, span-panel-api-schema-1==1.4.0b4, span-panel-api-schema-0==1.3.0b1.

span-panel-api 3.8.0b2 / schema-1 1.4.0b4 recaptured the schema-1
reference tree with ebus-panel-sim 0.9.0. The BESS meter is now
published discharge-positive, opposite power-flows/battery (r202639's
frame), and each charger declares its user charge-current limit
(format 6:32) without publishing a value. Seven tests read the old
tree; the integration reads the new one correctly, so the tests move.

BESS telemetry: the capture-reading sign tests are scoped to r202639's
frame, with the premise pinned (meter opposite the flow). The old frame
is built by republishing the capture under an r202633 version string
with the meter in the flow's sign, and keeps its own charging-reads-
negative, two-sensors-agree and republish tests.

EVSE charge limit: tests about a valued limit publish one, inside the
ceiling, the way a charger does once a user sets it. Added coverage of
the capture's own state (no user limit: the number shows the ceiling,
bounded by it, available), of a limit set and then cleared through the
transport, and of the pending write and the catalogued spelling with
and without a user limit.

Replay: captures_replay.replay sends a tree's empty value as Homie 5's
0x00 rather than a zero-length payload, which the library now reads as
a clear, and the charge-limit tests' adapter replays through it.
Pins span-panel-api 3.8.0b2 and span-panel-api-schema-1 1.4.0b4, which
carry the masked device-tree export the diagnostics now include, the
declared charge-limit range the charge-limit number is bounded by, and
the reference tree recaptured with ebus-panel-sim 0.9.0.
span-panel-api-schema-0 stays 1.3.0b1.
@cayossarian
cayossarian merged commit 5376eb6 into prerelease/2.2 Nov 1, 2026
7 checks passed
@cayossarian
cayossarian deleted the feat/masked-tree-export branch November 1, 2026 09:34
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