Changelog
Version 2026.8.0 (2026-08-03)
New
- Europe-wide: 43 bidding zones across 30 countries, with per-region VAT and unit presets
- Automatic price source chain: first-party Kilowahti CDN (ENTSO-E data, all 43 zones) with spot-hinta.fi fallback in Nordic and Baltic zones only;
price_data_sourcediagnostic sensor shows the active source - Local currency display for non-eurozone regions (SEK, NOK, DKK, CHF, PLN, CZK, HUF, RON, RSD, MKD): daily ECB or manual exchange rate, frozen per day; switching currency converts entered prices automatically;
exchange_ratediagnostic sensor - 23 additional UI languages (25 total) covering all supported regions; many are machine-assisted and native-speaker corrections are welcome
- Automation triggers (8) and conditions (5): price/rank acceptability edges, cheapest slot, fixed period start/end, tomorrow's prices available
- Effective price statistics sensors (
today_avg/min/max,tomorrow_avg/min/max) andspot_next_hours_avg
Changed
- Config flow label clarified: "Control factor function" → "Control factor curve"
Version 2026.6.0 (2026-06-25)
Fixed
- HACS country filter updated to include all supported price regions: DK, EE, FI, LT, LV, NO, SE
New
- Kilowahti is now in the HACS default repository — no custom repository URL needed
Version 2026.5.0 (2026-05-05)
Fixed
- Monthly score no longer shows NaN at the start of a new month — uses the current quartile midpoint as a placeholder when no consumption is recorded, includes today's in-progress score in the monthly average, and falls back to the previous month's finalised score when the current month is empty
- Optimization score accumulation now ranks slots by true total price (fixed-period rate or spot + transfer) instead of spot-only API rank — primarily affects fixed-price contract users
cheapest_hoursservice now uses total price (fixed-period or spot + transfer) for window selection — was previously spot-only
New
total_price_quartilesensor (1–4)cheapest_hoursacceptsreverse: trueparameter to return the latest cheapest window on ties
Changed
total_price_rankis now normalized: 1 = cheapest, slots_per_day = most expensive (regardless of unique tier count)
Removed
best_charge_hoursservice — consolidated intocheapest_hours(usecheapest_hourswithreverse: truefor the equivalent)
Version 2026.3.0 (2026-03-16)
⚠️ Breaking changes
- Six sensors have been renamed to clarify they reflect spot prices only:
| Old name | New name |
|---|---|
today_avg |
today_spot_avg |
today_min |
today_spot_min |
today_max |
today_spot_max |
tomorrow_avg |
tomorrow_spot_avg |
tomorrow_min |
tomorrow_spot_min |
tomorrow_max |
tomorrow_spot_max |
Update any automations or dashboard cards referencing the old entity IDs.
New shiny things
- Add generation & export support for users with solar panels and/or home batteries: export pricing sensors, battery charge/discharge optimization sensors and binary sensors, and related services
- Add rolling average price sensors (30/60/120 min ahead) — opt-in, 15-min resolution only
- Add monthly fixed cost configuration: electricity contract base fee and per-transfer-group fee, shown as a daily cost sensor
Maintenance
- Fix
tomorrow_total_avg/min/maxshowing Unknown when a fixed-price period covered tomorrow - Fix optimization score sensors showing
0.0instead of Unknown when no meter is configured - Fix fixed-price period price field pre-filled with
0.001in the UI
Version 2026.3.0-beta.2 (2026-03-15)
- Fix
today_total_avg/min/maxto use effective price (respects fixed-price periods) instead of raw spot price - Fix
tomorrow_total_avg/min/maxto always use fixed price when fixed-price period is active, regardless of whether spot prices have been fetched
Version 2026.3.0-beta.1 (2026-03-14)
- First beta release
- Add
today_total_avg,today_total_min,today_total_max— today's total price (spot + transfer) statistics - Add
tomorrow_total_avg,tomorrow_total_min,tomorrow_total_max— tomorrow's total price statistics (unavailable until prices fetched) - Migrate core price logic to kilowahti-py library
- Add integration test suite (32 tests)
Version 2026.3.0-alpha.6 (2026-03-11)
- Add
total_price_ranksensor — ranks current slot by total price (spot + transfer) among today's slots - Add writable
price_thresholdandrank_thresholdnumber entities — adjust thresholds from automations or dashboard without reopening configuration - Transfer price and control factor transfer sensors now always visible; show unavailable when no transfer group is configured
- Fix
tomorrow_avg,tomorrow_min,tomorrow_maxto show unavailable when tomorrow's prices have not yet been fetched
Version 2026.3.0-alpha.5 (2026-03-10)
First public test release.