A custom Lovelace card for Home Assistant that renders a physical representation of a SPAN electrical panel, showing circuits laid out by their actual tab positions.
- Two-column grid matching the physical panel layout (odd tabs left, even tabs right)
- 240V circuits span both columns
- Live power readings with utilization bar
- Breaker rating badges
- Relay on/off status indicators
- Historical power/current charts per circuit
- EVSE, BESS, Solar and solar inverter sub-device sections
- Auto-discovers all circuit entities from a single device selection
- SPAN Panel integration v2.0.5 or later installed and configured
- Circuits must have
tabsattributes (included in SPAN Panel integration v1.2+)
As of SPAN Panel integration v2.0.5, this card is automatically registered as a Lovelace resource by the integration itself — no separate installation is required. The integration serves the card JS from its own static path and writes the resource entry on setup.
Migrating from HACS or manual install? If you previously installed this card via HACS or manually copied
span-panel-card.jsto yourwww/directory, you should:
- Remove the HACS-managed dashboard resource (HACS > Dashboard > SPAN Panel Card > Remove) — or delete the manual
/local/span-panel-card.jsresource from Settings > Dashboards > Resources- Remove
span-panel-card.jsfrom yourconfig/www/directory if present- Restart Home Assistant
The integration will register its own copy of the card automatically on next startup.
The card includes a visual editor accessible through the dashboard UI. You can also configure it manually in YAML.
type: custom:span-panel-card
device_id: <your_span_panel_device_id>type: custom:span-panel-card
device_id: <your_span_panel_device_id>
history_days: 0
history_hours: 0
history_minutes: 5
chart_metric: power
show_panel: true
show_battery: true
show_evse: true
show_solar: true| Option | Type | Default | Description |
|---|---|---|---|
device_id |
string | (required) | The Home Assistant device ID of your SPAN Panel |
history_days |
integer | 0 |
Number of days of history to display in charts (0-30) |
history_hours |
integer | 0 |
Number of hours of history to display in charts (0-23) |
history_minutes |
integer | 5 |
Number of minutes of history to display in charts (0-59) |
chart_metric |
string | power |
Metric to display on circuit charts: power or current |
show_panel |
boolean | true |
Show the panel circuits grid |
show_battery |
boolean | true |
Show battery (BESS) sub-device section |
show_evse |
boolean | true |
Show EV charger (EVSE) sub-device section |
show_solar |
boolean | true |
Show the Solar and solar inverter tiles |
visible_sub_entities |
object | {} |
Map of entity IDs to booleans controlling which sub-device entities are displayed |
Each solar inverter has a tile with its vendor and model, and the power and chart of the circuit that feeds it. The Solar tile is the first inverter's tile, with the site's total PV power in a Site total row beneath it; on a single-inverter site the two numbers are usually close. Where no single panel circuit feeds the Solar device's inverter, its headline is the site total, captioned Site total. An inverter that no panel circuit feeds shows its identity and that its output is included in the site total. The editor's Battery section now also offers Meter Power and Nameplate Capacity.
- Go to Settings > Devices & Services
- Click your SPAN Panel device
- The device ID is in the URL:
/config/devices/device/<device_id>
When history_days or history_hours are set, history_minutes defaults to 0 unless explicitly provided. When neither is set, history_minutes defaults to
5.
The card reads the following from the SPAN Panel integration:
| Data | Source |
|---|---|
| Panel position | tabs attribute on circuit sensors |
| Power (W) | Circuit power sensor state |
| Breaker rating (A) | Circuit breaker rating sensor state |
| Relay on/off | relay_state attribute / switch entity |
| Voltage | voltage attribute (120V or 240V) |
| Panel size | panel_size attribute on status sensor |
| EVSE / BESS / Solar | Sub-devices discovered via via_device_id |
