What's new in v9.5.1
Planning with the pv10 forecast: the plan keeps a charge slot that matters only on a poor solar day, rather than pruning it because the normal forecast doesn't need it. On one Intelligent Octopus plan this restored a 23:30 charge that the live plan had dropped. The pv10 forecast now also scores each export at the target SoC that is sent to the inverter, rather than as a full drain. After upgrading, Predbat replaces a saved plan made by another version, so expect a fresh plan on the first run.
AgilePredict forecast for future Agile prices: Octopus publishes tomorrow's Agile prices at about 4pm, and the Nord Pool day-ahead feed (futurerate_url) only reaches the end of tomorrow. The rest of the plan used a copy of yesterday's prices. Set futurerate_agilepredict: true to fill those minutes from the AgilePredict regional forecast instead. Over 30 days in region G, the copied prices were off by 7.55p/kWh on average, and AgilePredict's 24–48 hour forecast by 4.49p. The order is: published rates, then Nord Pool, then AgilePredict, then copied rates. The region is taken from your Octopus tariff code, or set it with futurerate_agilepredict_region. The existing futurerate_adjust_* settings apply. Also fixed along the way: a forecast's second day was dropped, and future rates leaked into gas and into the tariffs that compare replays.
EDF Flextras free hours priced at 0p: with kraken_provider: edf, free hours booked through EDF Flextras (the 2026 replacement for Sunday Saver) are now read from EDF every 30 minutes and planned at 0p. Before, Predbat planned them at the normal rate. They are published on sensor.<prefix>_kraken_<account>_free_electricity and use the same path as Octopus free electricity sessions. E.ON Next has no Flextras, so nothing changes there. EDF Power Perks are not in any EDF API, so they still need a manual rate override.
Car energy counted in full: with manual car SoC tracking, energy that reached Home Assistant's history after Predbat had read it was skipped. On a Hypervolt charging at 7 kW, Predbat counted 12.0 of the 21.2 kWh delivered overnight. That energy is now counted, and the count survives a restart. Separately, the session energy sensor on a Hypervolt V3 charger never went back to 0, so later charges were missed. It now resets when charging stops.
Octopus data kept through partial errors: Octopus sometimes answers with part of the data missing and an error alongside. Predbat read the missing part as "nothing there". One device's status error emptied the Intelligent devices list, so dispatch updates were skipped until it came back. A missing saving sessions account dropped a joined free session from the plan (#5745). A failed free electricity query cleared the known events. The data Predbat already has is now kept until Octopus sends a real answer.
Energy rates
- AgilePredict forecast as a future rate source by @mgazza in #5738
- Kraken: price EDF Flextras booked free hours at 0p, refresh OAuth 30 minutes before expiry, and stop requesting the deprecated SmartFlex
providerfield (#5754) by @springfall2008 in #5730 - Kraken: use the standing charge that covers now (#5573) by @hifarrer in #5737
The OAuth change applies to every component that shares the OAuth code (Fox, Solis, Sunsynk, Deye, Teslemetry and myenergi as well as Kraken). Tokens are now refreshed 30 minutes before they expire instead of 2 hours. EDF's 1-hour token was being refreshed before every request.
Octopus
- Keep known data through partial GraphQL errors: Intelligent devices list, saving sessions and free electricity (#5745) by @springfall2008 in #5750
Car charging
- Stop manual car SoC tracking losing energy that reaches the history late by @tico24 in #5752
- Hypervolt: reset session energy on V3 chargers, which send no session id by @tico24 in #5751
Inverters
- GivTCP: don't claim
discharge_target_socfor models without the register (#5741) by @gcoan in #5747 - Solis: stop every read failing with
KeyErrorwhen a SoC limit is shown before the first poll by @springfall2008 in #5733
Plan
- Keep charge hedges that the normal forecast doesn't need when pruning, and replace plans from another version by @springfall2008 in #5735
- Score pv10 exports at the target the inverter is sent by @springfall2008 in #5736
Predheat
- Pre-heat every setpoint rise in the smart thermostat model, and cap the lead time with the new
smart_thermostat_max_minutesby @psweens in #5705
MCP
- Report
num_carsinget_statusfrom the apps.yaml setting (#5732) by @springfall2008 in #5742
New Contributors
- @psweens made their first contribution in #5705
- @hifarrer made their first contribution in #5737
- @tico24 made their first contribution in #5751
Full Changelog: v9.5.0...v9.5.1