Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neovolt Energy Card

hacs_badge Fork of

Animated solar/battery/grid energy flow dashboard for Home Assistant, wired for the Neovolt Modbus integration (host + follower combined, BW-INV-SPB5K).

Fork notice This repository is a fork of DJS91/FoxEss-Energy-Card. All visual design, SVG flow animations, day/night sky, weather overlays, detail-overlay layout, and the foundational card architecture are the work of @DJS91. Full credit to the original author. This fork swaps the FoxESS Modbus wiring for the Neovolt Modbus integration, adds signed power inputs, unit auto-detection, the full Neovolt dispatch model (7 modes), and a dispatch detail overlay. See What changed vs upstream below.

Host controls the system

All dispatch_* defaults point at neovolt_host_* entities. The host inverter commands the entire system unilaterally — the follower follows automatically. Do not point dispatch_mode_select, dispatch_power_number, dispatch_duration_number, dispatch_target_soc_number, or dispatch_cutoff_soc_number at follower entities; the follower exposes those as read-only mirrors and writing to them has no effect.

If you change the dispatch mode via the card / select.neovolt_host_dispatch_mode, the follower mirrors it within a poll cycle.

What changed vs upstream

  • Card type renamed to custom:neovolt-energy-card (old custom:energy-flow-card still works as alias).
  • All editor placeholders + stub defaults now point at Neovolt entities (sensor.neovolt_host_combined_*, sensor.neovolt_host_*, sensor.neovolt_follower_pv1_*, etc).
  • Auto-detect power units: reads unit_of_measurement and converts kW/MW to W internally. Mix W and kW sources freely.
  • Two new signed-power inputs that replace the legacy positive-only pairs:
    • grid_power_sensor+ import, export
    • battery_power_sensor+ discharge, charge The legacy grid_feed_in_sensor / grid_consumption_sensor / battery_charge_sensor / battery_discharge_sensor inputs are still accepted as fallbacks.
  • Full Neovolt dispatch model: all 7 dispatch modes get distinct accent colors (Normal/Force Charge/Force Discharge/Dynamic Export/Dynamic Import/No Battery Charge/Idle).
  • New dispatch detail card in the overlay showing target power, target/cutoff SOC, and remaining time (from dispatch_status dispatch_time_remaining_s attribute).
  • Footer "Dispatch" row replaces "Inverter Mode" with live mode + target + countdown.

Features (inherited)

  • Animated solar/battery/grid/home wires with photon flow
  • Day/night sky gradient + sun position + stars
  • Live weather clouds + rain (from a weather.* entity)
  • Detail overlay: PV strings, temps, faults, battery health
  • All fields configurable via visual editor

Install (manual, local)

  1. Copy dist/neovolt-energy-card.js to /config/www/neovolt-energy-card.js
  2. Settings → Dashboards → Resources → Add Resource
    • URL: /local/neovolt-energy-card.js
    • Type: JavaScript module
  3. Hard refresh browser, then add the card to a dashboard.

Required helpers

Entity Purpose
input_boolean.energy_house_image_day_cycle Day/night sky + weather overlay
input_boolean.energy_vision_details Detail overlay (PV strings, temps, dispatch box)

Create via Settings → Devices & Services → Helpers → Create Helper → Toggle.

Minimal YAML (combined host + follower)

type: custom:neovolt-energy-card
# Base Energy
solar_generation_sensor: sensor.neovolt_host_combined_pv_power
grid_power_sensor: sensor.neovolt_host_grid_total_active_power      # signed: + import / - export
battery_power_sensor: sensor.neovolt_host_combined_battery_power    # signed: + discharge / - charge
battery_soc_sensor: sensor.neovolt_host_combined_battery_soc
load_power_sensor: sensor.neovolt_host_combined_house_load
inverter_state_sensor: sensor.neovolt_host_battery_status
dispatch_mode_select: select.neovolt_host_dispatch_mode
# Dispatch detail (shown in overlay when active)
dispatch_status_sensor: sensor.neovolt_host_dispatch_status
dispatch_power_number: number.neovolt_host_dispatch_power
dispatch_duration_number: number.neovolt_host_dispatch_duration
dispatch_target_soc_number: number.neovolt_host_dispatch_charge_target_soc
dispatch_cutoff_soc_number: number.neovolt_host_dispatch_discharge_cutoff_soc
# Inverter details
inverter_temp_sensor: sensor.neovolt_host_inverter_module_temperature
battery_temp_sensor: sensor.neovolt_host_battery_buck_boost_temperature
cell_temp_low_sensor: sensor.neovolt_host_combined_battery_min_cell_temperature
cell_temp_high_sensor: sensor.neovolt_host_combined_battery_max_cell_temperature
grid_voltage_sensor: sensor.neovolt_host_grid_voltage_phase_a
grid_current_sensor: sensor.neovolt_host_grid_current_phase_a
battery_soh_sensor: sensor.neovolt_host_combined_battery_soh
inverter_fault_sensor: sensor.neovolt_host_inverter_fault
# PV strings — host has PV1-3, follower has its own PV1 (shown as PV4)
pv1_power_sensor: sensor.neovolt_host_pv1_power
pv1_current_sensor: sensor.neovolt_host_pv1_current
pv1_voltage_sensor: sensor.neovolt_host_pv1_voltage
pv2_power_sensor: sensor.neovolt_host_pv2_power
pv2_current_sensor: sensor.neovolt_host_pv2_current
pv2_voltage_sensor: sensor.neovolt_host_pv2_voltage
pv3_power_sensor: sensor.neovolt_host_pv3_power
pv3_current_sensor: sensor.neovolt_host_pv3_current
pv3_voltage_sensor: sensor.neovolt_host_pv3_voltage
pv4_power_sensor: sensor.neovolt_follower_pv1_power
pv4_current_sensor: sensor.neovolt_follower_pv1_current
pv4_voltage_sensor: sensor.neovolt_follower_pv1_voltage
# Overlays
day_cycle_boolean: input_boolean.energy_house_image_day_cycle
details_overlay_boolean: input_boolean.energy_vision_details
weather_entity: weather.your_location_hourly
solar_label: SOLAR
background_image: /local/energy-house.png
model_label: NEOVOLT BW-INV-SPB5K   # small badge text bottom-right, set '' to hide

Config reference

Base Energy Sensors

Key Description
grid_power_sensor Single signed grid power: + import, export (preferred)
grid_feed_in_sensor / grid_consumption_sensor Legacy unsigned pair (used if grid_power_sensor not set)
battery_power_sensor Single signed battery power: + discharge, charge (preferred)
battery_charge_sensor / battery_discharge_sensor Legacy unsigned pair
battery_soc_sensor Battery SOC %
load_power_sensor Home load
inverter_state_sensor Inverter / battery status text
dispatch_mode_select The select.neovolt_*_dispatch_mode entity
solar_generation_sensor Combined PV power
solar_label Optional label (default SOLAR)

Power inputs may be in W, kW, or MW — auto-detected from unit_of_measurement.

Neovolt Dispatch Controls

Key Default
dispatch_status_sensor sensor.neovolt_host_dispatch_status
dispatch_power_number number.neovolt_host_dispatch_power
dispatch_duration_number number.neovolt_host_dispatch_duration
dispatch_target_soc_number number.neovolt_host_dispatch_charge_target_soc
dispatch_cutoff_soc_number number.neovolt_host_dispatch_discharge_cutoff_soc

Mode color mapping:

Mode Accent
Normal green
Force Charge blue + pulse
Dynamic Import cyan
Force Discharge amber + falling $
Dynamic Export violet
No Battery Charge orange
Idle (No Dispatch) gray

Other sections

Same as upstream — see Inverter / Grid / Top-Right / PV / Overlay sections in the visual editor.

License

MIT — same as upstream. Original copyright belongs to @DJS91; fork modifications copyright the fork contributors.

Credits

  • Original card, design, and SVG animation work: @DJS91FoxEss-Energy-Card. The card you see on screen is fundamentally their work; this fork only rewires entity inputs and adds Neovolt-specific dispatch UI on top.
  • Neovolt Modbus rewiring + dispatch model: this fork.
  • Neovolt integration entities: the Neovolt Home Assistant integration.

If you like this card, please ⭐ the upstream repo too.

About

Home Assistant Lovelace card for the Neovolt Modbus integration (BW-INV-SPB5K, host+follower). Fork of DJS91/FoxEss-Energy-Card with full Neovolt dispatch model.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors