Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
9135500
Fix PV nameplate capacity sensor unit to watts
cayossarian Mar 11, 2026
498c4f7
Add schema validation cross-check (Phase 1)
cayossarian Mar 14, 2026
e19a251
Externalize simulator process
cayossarian Mar 14, 2026
291a798
Update schema-driven changes plan with versioning model
cayossarian Mar 15, 2026
79d8b19
Delegate panel cloning to external simulator via WSS
cayossarian Mar 15, 2026
79ecdd1
Add eBus panel clone design document for simulator
cayossarian Mar 15, 2026
f9331ab
Pin span-panel-api to ==2.3.0 in manifest.json
cayossarian Mar 15, 2026
6ed08f2
Fix sync-dependencies to preserve exact version specifier from manifest
cayossarian Mar 15, 2026
0e93d17
Add python-socketio as dev dependency
cayossarian Mar 16, 2026
a5fcce9
Refactor simulation utils for modularity and correctness
cayossarian Mar 16, 2026
c651735
Use runtime_data for coordinator access in profile builder
cayossarian Mar 16, 2026
a5f1337
Use single Socket.IO session for clone and profile delivery
cayossarian Mar 16, 2026
6be314e
Use recorder executor for statistics queries in profile builder
cayossarian Mar 16, 2026
f697f5f
Fix profile builder: timestamp type, timezone, and outlier robustness
cayossarian Mar 16, 2026
b7c9914
Add export_circuit_manifest service for simulator add-on
cayossarian Mar 16, 2026
3e63c4d
bump versioon to 2.0.4
cayossarian Mar 16, 2026
efb2b3e
Register export_circuit_manifest in async_setup per HA core standard
cayossarian Mar 17, 2026
f63d0a0
Remove clone-to-simulation from options flow
cayossarian Mar 17, 2026
103a7fb
Note the remoal of the simulation config flow export
cayossarian Mar 17, 2026
7d7931c
Use configured panel host for MQTT broker connection
cayossarian Mar 18, 2026
96199b1
Add changelog entry for MQTT broker host resolution fix (#193)
cayossarian Mar 18, 2026
9eb3220
bump span-panel-api to 2.3.1
cayossarian Mar 18, 2026
b7c58df
Handle malformed mDNS httpPort and add http_port translation strings
cayossarian Mar 18, 2026
7bcf69b
Remove unused python-socketio dependency
cayossarian Mar 18, 2026
ca8ab39
Add Grid Power Sensor
cayossarian Mar 19, 2026
b0030a3
Add warning to readme and update changelog
cayossarian Mar 19, 2026
427f6b9
Add FQDN support to config flow validation
cayossarian Mar 19, 2026
56e66d0
Fix Grid Power sensor sign and misc cleanup
cayossarian Mar 19, 2026
f6cc94b
Add FQDN registration changelog entry
cayossarian Mar 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 0 additions & 62 deletions .github/workflows/ci-simulation-example.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
- name: Install dependencies
run: |
# Replace path dependencies with PyPI versions for CI
sed -i 's/span-panel-api = {path = "..\/span-panel-api", develop = true}/span-panel-api = ">=2.2.4"/' pyproject.toml
sed -i 's/span-panel-api = {path = "..\/span-panel-api", develop = true}/span-panel-api = "==2.3.2"/' pyproject.toml
sed -i 's/ha-synthetic-sensors = {path = "..\/ha-synthetic-sensors", develop = true}/ha-synthetic-sensors = "^1.1.13"/' pyproject.toml
# Regenerate lock file with the modified dependencies
poetry lock
Expand Down
47 changes: 43 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,45 @@

All notable changes to this project will be documented in this file.

## [2.0.4] - 3/2026

**Important** 2.0.1 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

### Added

- **Grid Power sensor** — New `Grid Power`. Previously only `Current 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 BESS `Grid Power` is the same as `Current Power`.
- **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](https://github.com/spanio/SPAN-API-Client-Docs/issues/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.

### Fixed

- **MQTT broker hostname resolution across VLANs** — The panel advertises its own mDNS hostname (`.local`) as the MQTT broker address, but mDNS does not resolve
across VLAN boundaries. The integration now uses the user-configured panel host (IP or FQDN) for the MQTT broker connection, since the broker runs on the
panel itself. (#193)
- **PV nameplate capacity unit** — Corrected the PV nameplate capacity sensor unit to watts.

## [2.0.3] - 3/2026

**Important** 2.0.1 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

### Fixed

- **Force dependency re-resolution** — Version bump to ensure HACS re-installs `span-panel-api` for users who had the earlier 2.0.2 release. Users upgrading HA
without re-downloading the integration could be left with a stale library missing required imports. (#191)

## [2.0.2] - 3/2026

**Important** 2.0.1 cautions still apply — read those carefully if not already on 2.0.1 BEFORE proceeding:
Expand All @@ -12,15 +51,15 @@ All notable changes to this project will be documented in this file.
### Fixed

- **Panel size always available** — `panel_size` is now sourced from the Homie schema by the underlying `span-panel-api` Previously some users could see fewer
unmapped sensors when trailing breaker positions were empty. Topology service reflects panel size.
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, which caused HA energy cards to show the battery discharging when it was actually charging. 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 `-0W` instead of `0W`. 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. Net energy now reads dip offsets from its sibling sensors so the
displayed value always equals compensated consumed minus compensated produced.
- **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. Net energy now reads dip offsets from its sibling sensors so the displayed value
always equals compensated consumed minus compensated produced.

## [2.0.1] - 3/2026

Expand Down
10 changes: 9 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,13 @@ execute these actions without user presence; design them with the same care you
safety device and must not be relied upon for life-safety applications. Use this software at your own risk. If you cannot accept that risk, do not use this
software. See [LICENSE](LICENSE) for the full warranty disclaimer.

The SPAN Client documentation has warnings regarding the use of the API (the API used by this integration) which should be heeded just as if you were using that
API directly:

> An API client that attempts to implement its own load-shedding decisions, grid-state detection, or other critical automation is operating outside the scope of
> what SPAN API was designed and engineered for. Such use is entirely at the client developer's and homeowner's own risk and may void the SPAN Panel Limited
> Warranty. See the SPAN API Scope & Responsibility Model in the [SPAN API documentation](https://github.com/spanio/SPAN-API-Client-Docs).

This integration provides sensors and controls for understanding an installation's power consumption, energy usage, and controlling user-manageable panel
circuits. You can optionally use the [span-card](https://github.com/SpanPanel/span-card) Lovelace card for visualization and switch control.

Expand Down Expand Up @@ -126,6 +133,7 @@ If you encounter issues, restore from your backup or check the [troubleshooting
| ------------- | ------------ | ---- | --------------------------------------------------------------------------- |
| Battery Power | Power | W | Battery charge/discharge (+discharge, -charge). Only when BESS commissioned |
| PV Power | Power | W | PV generation (+producing). Only when PV commissioned |
| Grid Power | Power | W | Computed grid power flow. Only when power-flows node active |
| Site Power | Power | W | Total site power (grid + PV + battery). Only when power-flows node active |

### PV Metadata Sensors (v2 only, on main panel device)
Expand All @@ -144,7 +152,7 @@ If you encounter issues, restore from your backup or check the [troubleshooting

### Power Sensor Attributes

Applies to Current Power, Feed Through Power, Battery Power, PV Power, and Site Power sensors.
Applies to Current Power, Feed Through Power, Battery Power, PV Power, Grid Power, and Site Power sensors.

| Attribute | Type | Notes |
| ---------- | ------ | ------------------------------------ |
Expand Down
Loading
Loading