About
PV Energy Management Spot is an integration for PV systems on variable or spot electricity tariffs with battery management. It supports aWATTar, smartENERGY and Tibber tariffs and can read EPEX Spot prices and Solcast forecasts. It tracks amortization of the installation, savings, earnings from feed-in, self consumption and autarky, and compares spot prices with a fixed tariff. Battery control covers grid charging and discharging with settings for price quantile, minimum state of charge, charge power and winter-only operation. It also offers per-string PV tracking, an hourly load forecast built from recorded consumption history, and an offline energy benchmark. It runs locally and is set up in the UI.
Automatic summary of the README and code of hoizi89/pv_management. Something wrong, or are you the maintainer and want your own text here? Get in touch
Supports
Works locally Talks to your devices on your own network. No vendor cloud in between.
From the Marketplace Installed through the Marketplace, formerly HACS.
Actively maintained Its author released or pushed a change in the last six months.
Provides
- Switches
- Sensors
Setting it up
Install it from the Marketplace and restart Home Assistant, then add it under Settings, Devices and services.
Set up PV Management
- NameName for this PV system
- PV Production Sensor (kWh)Ever-increasing energy counter (kWh) of the PV system. Only have a power sensor (W)? Create a Riemann integral helper first (W → kWh).
- Grid Export Sensor (kWh)Ever-increasing energy counter (kWh) for grid export. Required for earnings calculation.
- Grid Import Sensor (kWh)Ever-increasing energy counter (kWh) for grid import.
- Household Consumption Sensor (kWh, optional)Ever-increasing energy counter (kWh) for total household consumption.
- Battery SOC Sensor (%, optional)Sensor for battery state of charge in % (for recommendation)
- PV Power Sensor (W, optional)Sensor for current PV power in W (for recommendation)
- House Power Sensor (W, optional)Sensor for current household power consumption in Watts (W). Required for PV surplus sensors (surplus = PV power minus house power).
- PV Forecast Sensor (kWh, optional)Sensor for daily PV forecast in kWh (for recommendation)
- Electricity Price UnitChoose whether electricity price is in Euro or Cent per kWh
- Electricity Price (Fallback)Used when no sensor is configured or sensor is unavailable
- Dynamic Electricity Price Sensor (optional)When configured, this value is used. On failure: fallback to above value
- Feed-in Tariff UnitChoose whether feed-in tariff is in Euro or Cent per kWh
- Feed-in Tariff (Fallback)Used when no sensor is configured or sensor is unavailable
- Dynamic Feed-in Tariff Sensor (optional)When configured, this value is used. On failure: fallback to above value
After setup
- PV Production (kWh)Total PV production in kWh (rising counter)
- Grid Export (kWh)Grid export in kWh (rising counter)
- Grid Import (kWh)Grid import in kWh (rising counter)
- Household Consumption (kWh)Total consumption in kWh (rising counter)
- Current PV Power (W)Current PV power in Watts (e.g. from your inverter). Together with house power (W) required for the PV surplus sensors.
- Current House Power (W)Current house power consumption in Watts (e.g. from your smart meter). Surplus = PV power - house power.
- PV-aware Load (W)Optional. Used only for the PV surplus calculation — not used anywhere else. When your PV-aware load (e.g. heat pump) is running, its consumption is subtracted from house power. Otherwise the load would push surplus below the threshold by its own consumption, causing flapping between ON and OFF.
- Battery SOC (%)Current battery state of charge in percent
- PV Forecast (kWh)Daily PV forecast in kWh (for recommendation)
- PV System Peak Power (W, auto)Leave empty → auto-derived from your PV strings (sum of configured kWp × 1000 or measured peak). Only set this to override the automatic value. Drives the low/medium/high thresholds (5/15/30 % of peak).
- Electricity Price UnitEuro or Cent per kWh
- Electricity Price (Fallback)Used when no sensor is configured
- Dynamic Electricity Price SensorOptional: Sensor for dynamic electricity price (e.g. EPEX)
- Feed-in Tariff UnitEuro or Cent per kWh
- Feed-in Tariff (Fallback)Used when no sensor is configured
- Dynamic Feed-in Tariff SensorOptional: Sensor for dynamic feed-in tariff
- Fixed Price ComparisonFixed price for comparison (e.g. provider offer). Shows savings vs spot tariff.
- Installation CostTotal cost of PV system in Euro
- Installation DateFor statistics and forecasts
- Yearly CostYearly costs like insurance, maintenance etc. Deducted from amortization calculation.
- EPEX Spot PriceCurrent EPEX Spot electricity price sensor
- EPEX QuantileEPEX Quantile (0=cheapest, 1=most expensive price of the day)
- Solcast ForecastSolcast PV forecast for today in kWh
- Solcast weighting P50 → P100 = 100 % P50 (default, previous behaviour), 1 = 100 % P10 (cautious forecast), linear in between. Applies to the daily forecast, auto-charge and PV tips. If Solcast provides no P10 values, P50 is used.
- Amortization Helper (input_number)input_number entity for persistent savings storage
- Restore from HelperRestore savings value from the helper on next restart
- Target/Hold SOCCharge battery up to this level AND hold at this level during cheap prices
- Auto-Charge: Winter OnlyOnly charge from October to March (PV is sufficient in summer)
- Auto-Charge: PV ThresholdBelow this PV forecast, charging is recommended
- Auto-Charge: Price Quantile0=cheapest, 1=most expensive. At 0.2 only charge in cheapest 20%
- Auto-Charge: Min. Price DifferenceMin. difference cheap/expensive in ct/kWh (charging losses!)
- Auto-Charge: Min. SOC (Start)Only start grid charging when battery is BELOW this value
- Auto-Charge: Charge PowerGrid charging power in Watt
- Discharge: Winter OnlyOnly active from October to March
- Discharge: Price Quantile0=cheapest, 1=most expensive. At 0.7 only discharge in most expensive 30%
- Discharge: Min. SOC (expensive)Battery can discharge down to this level when electricity is expensive
- Discharge: Summer SOCNormal discharge in summer (April-September)
- String 1 Namee.g. South Roof
- String 1 Sensor (kWh)kWh counter for this string
- String 1 Power (W)Power sensor (W) for peak detection (optional)
- String 1 Installed Capacity (kWp)Installed nameplate capacity in kWp (optional, for specific yield + performance ratio)
- String 2 Namee.g. East Roof
- String 2 Sensor (kWh)kWh counter for this string
- String 2 Power (W)Power sensor (W) for peak detection (optional)
- String 2 Installed Capacity (kWp)Installed nameplate capacity in kWp (optional)
- String 3 Namee.g. West Roof
- String 3 Sensor (kWh)kWh counter for this string
- String 3 Power (W)Power sensor (W) for peak detection (optional)
- String 3 Installed Capacity (kWp)Installed nameplate capacity in kWp (optional)
- String 4 Namee.g. Garage
- String 4 Sensor (kWh)kWh counter for this string
- String 4 Power (W)Power sensor (W) for peak detection (optional)
- Enable load forecastCreates 5 forecast sensors — pair with EPEX price and Solcast for charging logic
- History windowMore weeks = more stable profile. 4 weeks = sweet spot
- Filter outlier days automaticallyDrop the highest + lowest value per cell (recommended)
- Subtract heat pump (optional)HP total energy sensor (kWh) — subtracted from base load
- Subtract EV charger (optional)Wallbox total energy sensor (kWh) — subtracted from base load
- Winter Base LoadBase load in winter (e.g. heat pump) - subtracted from available PV
- Battery 'Full' ThresholdAbove this value, battery is considered full (for traffic light)
- Battery 'Empty' ThresholdBelow this value, battery is considered empty (for traffic light)
- Price 'Cheap' ThresholdBelow this price, electricity is considered cheap (for traffic light)
- Price 'Expensive' ThresholdAbove this price, electricity is considered expensive (for traffic light)
Texts from the code of hoizi89/pv_management.
Entities
- SensorsAmortisation, Total Savings, Remaining Amount, Amort. Status, Self Consumption, Feed-in, PV Production, Savings Self Consumption, Earnings Feed-in, Self Consumption Ratio, Autarky Rate, Amort. Savings/Day, and 48 more
From the README
The all-in-one Home Assistant integration for your PV system with variable/spot electricity tariffs and intelligent battery management.
Shows in Vulpo
Quick Toggle card, Button card, Chart card, Apple Watch, Control Center.Information
- Installs
- 74 sharing analytics
- GitHub stars
- 10
- Connection
- Works locally
- Upkeep
- Updated in the last 6 months
- Version
- v4.6.0,
- Category
- Energy, Solar and batteries
- Kind
- Marketplace integration
- Needs
- Needs the Marketplace (HACS on 2026.10 and older)
- Domain
pv_management- Issues
- Report an issue












