Releases: SpanPanel/span
v2.0.4
Important 2.0.1 cautions still apply — read those carefully if not already on 2.0.1 BEFORE proceeding:
- Requires firmware
spanos2/r202603/05or later (v2 eBus MQTT) - You must already be on v1.3.x or later of the SpanPanel/span integration if upgrading
Added
- Grid Power sensor — New
Grid Power. Previously onlyCurrent Power(upstream lugs measurement) was available; the new sensor surfaces the panel's own
grid power accounting alongside Battery Power, PV Power, and Site Power. Without BESSGrid Poweris the same asCurrent Power. Note that if your panel has
an integrated BESS and the BESS loses communication with the panel the Grid Power sensor is not accurate. In such a case HA would need a current clamp
upstream of the BESS to accurately reflect whether the Grid is up. - FQDN registration support — Config flow detects FQDN-based connections and registers the domain with the panel for TLS certificate SAN inclusion. Blocked
by an upstream API permission issue (SPAN-API-Client-Docs#10); the integration falls back to
IP-based connections until resolved.
Changed
- Simulation moved to dedicated add-on — Panel cloning and simulation are no longer part of the integration's options flow. A new
export_circuit_manifest
service provides panel parameters to the standalone SPAN Panel Simulator add-on, which now supports upgrade
modelling (evaluate firmware or integration upgrades in a sandbox before applying them to your real panel) and panel clone (replicate your panel's circuit
layout for testing).
Fixed
-
MQTT broker connection — The eBus broker connection now uses the panel host from zeroconf discovery or user configuration instead of the panel-advertised
.localaddress, which may not resolve in all HA environments (#193). -
PV nameplate capacity unit — Corrected the PV nameplate capacity sensor unit to watts.
-
Recorder database growth — Energy sensors still expose grace-period and dip-compensation diagnostics, plus circuit
tabsandvoltage, on the entity, but
those attributes are no longer written to the recorder, which greatly reduces churn in thestate_attributestable (#197).
v2.0.3
This is a fix for HA core 2026.3.2
Important 2.0.x cautions still apply — read those carefully if not already on 2.0.1 BEFORE proceeding:
Requires firmware spanos2/r202603/05 or later (v2 eBus MQTT)
You must already be on v1.3.x or later of the SpanPanel/span integration if upgrading
Full Changelog: v2.0.2...v2.0.3
v2.0.2
Important 2.0.x cautions still apply — read those carefully if not already on 2.0.1 BEFORE proceeding:
- Requires firmware
spanos2/r202603/05or later (v2 eBus MQTT) - You must already be on v1.3.x or later of the SpanPanel/span integration if upgrading
Fixed
- Panel size always available —
panel_sizeis now sourced from the Homie schema by the underlyingspan-panel-apiPreviously some users could see fewer unmapped sensors when trailing breaker positions were empty. Topology service reflects panel size. - Battery power sign inverted — Battery power sensor now uses the correct sign convention. Previously, charging was reported as positive and discharging as negative. The panel reports power from its own perspective; the
sensor now negates the value to match HA conventions (positive = discharging), consistent with how PV power is already handled. (#184) - Idle circuits showing -0W — Power sensors that negate values (PV circuits, battery, PV power) could produce IEEE 754 negative zero (
-0.0) when the
circuit was idle, causing HA to display-0Winstead of0W. All negation sites now normalize zero to positive. (#185) - Net energy inconsistent with dip-compensated consumed/produced — When energy dip compensation was enabled, consumed and produced sensors applied an
offset but net energy computed from raw snapshot values, causing a visible mismatch when there was a dip compensation. - Fixed dependency resolution — Capped
span-panel-apiat<2.3.0to prevent pip from installing an incompatible version that removed the simulation module. (#189)
v2.0.1
Breaking Changes
-
Requires firmware
spanos2/r202603/05or later (v2 eBus MQTT) -
You must already be on v1.3.1 of the SpanPanel/span integration if upgrading
-
After upgrading, you must re-authenticate using your panel passphrase (found in the SPAN mobile app under On-premise settings) or proof of proximity
(open and close the panel door 3 times). See the README for details. -
If you were running a beta or RC, ensure you reload the integration after upgrade
-
Cellularbinary sensor removed — replaced byVendor Cloudsensor -
DSM Grid Statedeprecated — still available, but users should rely onDSM StateasDSM Grid Statemay be removed in a future version since it is an
alias forDSM State -
Sensor state values are now lowercase — The following sensors now report lowercase state values with translated display names. Automations or scripts that
compare against the old uppercase values must be updated:DSM State:DSM_ON_GRID→dsm_on_grid,DSM_OFF_GRID→dsm_off_gridDSM Grid State: same as DSM State (deprecated alias)Current Run Config:PANEL_ON_GRID→panel_on_grid,PANEL_OFF_GRID→panel_off_gridMain Relay State:CLOSED→closed,OPEN→open
The UI displays localized names (e.g.,
dsm_on_griddisplays as "On Grid"). Automations use the lowercase values shown above. This change was made to support
translations in enumerations.
New Features
- EVSE (SPAN Drive) Support: Each commissioned EV charger appears as a sub-device (e.g., "Main House SPAN Drive (Garage)")
- BESS sub-device: Battery entities live on a dedicated BESS sub-device
- Energy Dip Compensation: Automatically compensates when the panel reports lower energy readings for
TOTAL_INCREASINGsensors, maintaining a cumulative
offset to prevent negative spikes in the energy dashboard. Enabled by default for new installs; existing installs can enable via General Options. Includes
diagnostic attributes (energy_offset,last_dip_delta) and persistent notifications. - Real-time MQTT push via eBus broker — no more polling intervals
- Grid Forming Entity (GFE) sensor — shows the panel's current grid-forming power source (GRID, BATTERY, PV, GENERATOR, NONE, UNKNOWN). Identifies which
source provides the frequency and voltage reference. - GFE Override button — publishes a temporary
GRIDoverride when the battery system (BESS) loses communication and the GFE value becomes stale. The BESS
automatically reclaims control when communication is restored. See Grid Forming Entity for details Site Powersensor (grid + PV + battery from power-flows node)- Panel diagnostic sensors: L1/L2 Voltage, Upstream/Downstream L1/L2 Current, Main Breaker Rating — promoted from attributes to dedicated diagnostic
entities - Circuit Current and Breaker Rating sensors: promoted from circuit power sensor attributes to dedicated per-circuit entities (conditionally created when
the panel reports the data) - PV metadata sensors: PV Vendor, PV Product, Nameplate Capacity — on the main panel device (conditionally created when PV is commissioned)
- Grid Islandable binary sensor: indicates whether the panel can island from the grid (conditionally created)
PV Powersensor with inverter metadata attributes (vendor, product, nameplate capacity)- Reconfigure flow — update the panel host/IP address without removing and re-adding the integration.
- Circuit Shed Priority select now works — controls off-grid shedding (NEVER / SOC_THRESHOLD / OFF_GRID)
- Panel size and Wi-Fi SSID as software version attributes
Removed
- Post-install entity naming pattern switching — the naming pattern is now set once during initial setup. The
EntityIdMigrationManagerand all associated
migration machinery have been removed cleanup_energy_spikesandundo_stats_adjustmentsservices — energy dip compensation handles counter dips automatically. For existing historical spikes,
use Developer Tools > Statistics to adjust individual entries
Developer / Card Support
- WebSocket Topology API: New
span_panel/panel_topologyWebSocket command that returns the full physical layout of a panel in a single call — circuits
with breaker slot positions, entity IDs grouped by role, and sub-devices (BESS, EVSE) with their entities. See
WebSocket API Reference for schema and examples
Improvements
DSM State— multi-signal heuristic deriving grid connectivity from battery grid-state, dominant power source, upstream lugs power, and power-flows gridCurrent Run Config— full tri-state derivation (PANEL_ON_GRID / PANEL_OFF_GRID / PANEL_BACKUP)- Configurable snapshot update interval (0–15s, default 1s) reduces CPU on low-power hardware
v1.3.1
🐛 Bug Fixes
-
Fix reload loop when circuit name is None (#162, @NickBorgers): Fixed infinite reload loop that caused entity flickering when the SPAN panel
API returns None for circuit names.
Thanks to @NickBorgers for correctly analyzing a solution. @cayossarian. -
Fix spike cleanup service not finding legacy sensor names (#160, @mepoland ): The
cleanup_energy_spikesservice now correctly finds sensors regardless of naming pattern (friendly names, circuit numbers, or legacy names withoutspan_panel_prefix).
Also adds optionalmain_meter_entity_idparameter allowing users to manually specify the
spike detection sensor when auto-detection of main meter fails or that sensor has been renamed.
@cayossarian.
🔧 Improvements
- When a user has customized an entity's friendly name in Home Assistant, the integration skips reload request for that entity. @cayossarian
v1.30
🔄 Changed
Bump span-panel-api to v1.1.14: Recognize panel Keep-Alive at 5 sec, Handle httpx.RemoteProtocolError defensively, Thanks to
@NickBorgersOnLowSecurityNode - Addresses Issue #156
v1.29
Removed Decreasing Energy Protection: Reverted the TOTAL_INCREASING validation that was ignoring decreasing energy values that were thought to occur a limited number of updates but turned out to be permanent under-reporting of SPAN cloud data that manifested during firmware updates. The bug is on the SPAN side and can result in spikes in energy dashbaoards after firmware updates. See the Trouble-Shooting section of the README.md for more information.
Energy Spike Cleanup Service: New span_panel.cleanup_energy_spikes service to detect and remove negative energy spikes from Home Assistant statistics caused by panel firmware updates. Includes dry-run mode for safe preview before deletion.
Firmware Reset Detection (Beta): Monitoring of main meter energy sensor to detect errant (negative energy reports over time). Sends a persistent notification when detected, guiding users to adjust statistics if desired.
v1.2.8
- Fix total increasing sensors against receiving data that is less than previously reported as can occur when the panel upgrades
- Fix feedthrough sensor types now set to TOTAL instead of TOTAL_INCREASING
1.2.7
What's Changed
- fix don't call simulation listener, not in sim mode by @cayossarian in #145
- Fix grace period restoration on restart by @cayossarian in #149
- ci(deps): bump actions/checkout from 5 to 6 by @dependabot[bot] in #148
- Fix energy restore attr error by @cayossarian in #150
Full Changelog: v1.2.6...1.2.7