Releases: johanzander/bess-manager
v7.3.0
What's Changed
- Extended optimization horizon to 2 days when tomorrow's prices are available, enabling true cross-day arbitrage decisions. Only today's schedule is deployed to the inverter. (thanks @pookey)
- Terminal value fallback when tomorrow's prices aren't yet published, preventing the optimizer from treating stored battery energy as worthless at end of day.
- Tomorrow's solar forecast support via Solcast
solar_forecast_tomorrowsensor. - Dashboard, Inverter, and Savings pages show tomorrow's planned schedule when available.
- DST-safe period-to-timestamp conversion throughout.
Fixed
- Economic summary and profitability gate now scoped to today-only periods, preventing inflated savings figures when the horizon extends into tomorrow.
Full changelog: https://github.com/johanzander/bess-manager/blob/main/CHANGELOG.md
v7.1.1
Fixed
- Battery SOC no longer shows impossible values (e.g. 168%) when battery capacity differs from the 30 kWh default.
SensorCollector,EnergyFlowCalculator, andHistoricalDataStorewere initialised with the default capacity and only received the configured value via manual propagation inupdate_settings(). They now hold a sharedBatterySettingsreference so the configured capacity is always used for SOC-to-SOE conversion.
v7.0.0: Octopus Energy support + unified energy provider config
Breaking change — existing users must update config.yaml
See UPGRADE.md for step-by-step migration instructions.
What's new
Octopus Energy Agile tariff support (contributed by @pookey, PR #19)
UK users with Octopus Energy can now use BESS Manager directly against their Agile import and export rates:
- Fetches 30-minute half-hourly rates from Home Assistant event entities
- Prices are VAT-inclusive GBP/kWh — no manual VAT or markup configuration needed
- Separate import and export rate entities for accurate export arbitrage calculations
Unified energy provider configuration
The nordpool: top-level config key has been replaced by a single energy_provider: section supporting three providers:
energy_provider:
provider: "nordpool_official" # or "nordpool" or "octopus"
nordpool_official:
config_entry_id: "your-entry-id"Other improvements
- Pricing parameters (VAT, markup, additional costs) now propagate immediately when changed via settings without requiring a restart
- Grid charging now uses full inverter power rate rather than being throttled to the DP algorithm's planned kW
- Dead code removed:
LegacyNordpoolSource, unused nordpool sensor methods from HA controller
Contributors
Thanks to @pookey for implementing Octopus Energy support!
v6.0.7: Fix grid charging throttled to DP power level
What's Fixed
Grid charging now always charges at full power.
When the optimizer decided to charge from the grid during cheap price periods, the inverter was being throttled to a fraction of its max charge rate (e.g. 25% instead of 100%). This meant paying for cheap electricity but not actually getting it into the battery as fast as possible.
Root Cause
The DP algorithm computes planned power levels as part of its energy model (e.g. "I plan to charge 1.5 kWh in this period"). This was being converted to a hardware charge rate percentage and stored in hourly_settings. The power monitor then used that throttled rate to control the inverter.
This conflated two things:
- The DP's energy model (how much energy to move)
- The hardware execution (how fast to move it)
The DP power level is an artifact of the optimization model, not a hardware rate limit. The power monitor already handles the actual hardware cap via real-time fuse headroom calculations.
Fix
hourly_settings now stores charge_rate=100 for GRID_CHARGING — charge as fast as fuses allow. Removed the dead charge_rate local variable in _apply_period_schedule that was computed correctly (100%) but never actually applied to hardware, which was the source of the split-brain confusion.
169 tests passed, 0 regressions.
v2.5.4 - Test Mode Improvements & Config Cleanup
Fixed
- Fixed test mode to properly block all hardware write operations using "deny by default" pattern
- Fixed duplicate config.yaml files - now single source of truth in repository root
- Removed unused ac_power sensor configuration
Changed
- Test mode now controlled via HA_TEST_MODE environment variable instead of hardcoded
- Updated docker-compose.yml to mount root config.yaml for development
- Updated deploy.sh and package-addon.sh to use root config.yaml
Installation
For Home Assistant add-on installation, add this repository to your add-on store:
https://github.com/johanzander/bess-manager
🤖 Generated with Claude Code
v2.5.2 - Home Assistant Repository Support
What's New
Home Assistant Add-on Store Support
- Repository can now be added directly to Home Assistant via Add-on Store
- Add this URL:
https://github.com/johanzander/bess-manager - Multi-architecture support: aarch64, amd64, armhf, armv7, i386
Bug Fixes
- Fixed duplicate configuration files using symlinks
- Removed duplicate CHANGELOG.md from bess_manager directory
- Fixed deploy.sh to work with symlinked configuration files
Repository Structure
- Added repository.json for HA validation
- Added bess_manager/ directory with proper HA add-on structure
- Added build.json for multi-architecture builds
- Added comprehensive CHANGELOG.md
Installation Methods
Method 1: GitHub Repository (New)
- Go to Home Assistant → Settings → Add-ons → Add-on Store
- Click three dots (top right) → Repositories
- Add:
https://github.com/johanzander/bess-manager - Find "BESS Battery Manager" and install
Method 2: Local Build
./package-addon.shFull Changelog: 2.5.0...v2.5.2
make cycle_cost and currency user-configurable settings
- Add cycle_cost and currency to home settings configuration
- Remove hardcoded currency defaults throughout codebase
- Update INSTALLATION.md with EUR examples and realistic cycle_cost ranges