Releases: SpanPanel/span-panel-api
Releases · SpanPanel/span-panel-api
v2.5.3
What's Changed
- chore(deps): bump cryptography from 46.0.6 to 46.0.7 by @dependabot[bot] in #131
Fixed
- Preserve property values on lifecycle reset — the 2.5.2 property clear caused
_parse_float('')to return0.0for energy counters during panel reboots or network interruptions, triggering false dip-compensation offsets in the integration that
permanently inflated energy sensor values. Removed the property/timestamp/target clearing from_handle_description(). Pre-reboot values now serve as safe placeholders until the panel re-publishes fresh data. - Snapshot cache invalidated on reboot — the generation counter still increments on lifecycle resets, forcing consumers to discard cached snapshots and rebuild from current accumulator state.
Full Changelog: v2.5.2...v2.5.3
v2.5.2
What's Changed
- fix: clear stale property values on panel reboot to prevent mixed-gen snapshots by @cayossarian in #130
Full Changelog: v2.5.1...v2.5.2
v2.5.1
What's Changed
- fix: replace assert in production code, fix broken bandit hook, bump … by @cayossarian in #129
Full Changelog: v2.5.0...v2.5.1
v2.5.0
Added
HomiePropertyAccumulator— new layer that handles generic Homie v5 protocol parsing (message routing, property/target storage, dirty-node tracking) with an explicit lifecycle state machine (HomieLifecycle), cleanly separated from SPAN-specific
snapshot construction.$targetproperty support —SpanCircuitSnapshotgainsrelay_state_targetandpriority_targetfields, surfacing the desired-vs-actual state for relay and shed-priority commands.- Dirty-node snapshot caching —
HomieDeviceConsumer.build_snapshot()tracks which nodes changed since the last build and returns a cached snapshot when nothing is dirty, reducing per-scan CPU cost on constrained hardware.
Changed
- Layered Homie consumer architecture —
HomieDeviceConsumerno longer handles protocol plumbing. It reads fromHomiePropertyAccumulatorvia a query API (get_prop,get_target,nodes_by_type, etc.) and focuses solely on SPAN domain
interpretation: power sign normalization, DSM derivation, unmapped tab synthesis, and snapshot assembly. SpanMqttClientcomposes both layers —connect()creates an accumulator and wires it into the consumer. The public client API is unchanged.- Property callbacks fire only on value change — retained messages replaying already-known values no longer trigger callback storms on MQTT reconnect.
v2.4.2
What's Changed
- chore(deps): bump astral-sh/setup-uv from 5 to 7 by @dependabot[bot] in #121
- chore(deps): bump dependabot/fetch-metadata from 2.5.0 to 3.0.0 by @dependabot[bot] in #126
- chore(deps): bump pygments from 2.19.2 to 2.20.0 by @dependabot[bot] in #125
- chore(deps): bump cryptography from 46.0.5 to 46.0.6 by @dependabot[bot] in #124
- chore(deps): bump requests from 2.32.5 to 2.33.0 by @dependabot[bot] in #123
- Fix blocking load_verify_locations call in event loop by @cayossarian in #127
Full Changelog: v2.4.1...v2.4.2
v2.4.1
Full Changelog: v2.4.0...v2.4.1
set the license in the manifest
v2.4.0
What's Changed
- chore(deps-dev): bump black from 25.1.0 to 26.3.1 by @dependabot[bot] in #116
- Migrate from Poetry to uv for package management by @cayossarian in #120
- v2.4.0 HA core ready by @cayossarian in #122
Full Changelog: v2.3.2...v2.4.0
v2.3.2
What's Changed
- Add FQDN to API URL and update version to 2.3.2 by @cayossarian in #119
Full Changelog: v2.3.1...v2.3.2
v2.3.1
What's Changed
- v2.3.1 catch connect failure to the MQTT broker by @cayossarian in #118
Full Changelog: v2.3.0...v2.3.1
v2.3.0
What's Changed
- 2 3 0 extract simulation, add diagnostics for schema drift by @cayossarian in #117
Full Changelog: v2.2.4...v2.3.0