What's new in v9.4.6
Overnight charge no longer split at midnight: with combine_charge_slots on, a cheap window that crosses midnight (for example Intelligent Octopus 23:30–05:30) was split into two charge windows at 00:00. That let an export slot take over the first part and mixed charging and exporting in one night. Charge windows are now split only at dawn, as intended.
Intelligent Octopus with an Ohme charger: Predbat now takes the car's planned slots from Octopus, not from Ohme. A boost started from the Ohme app was priced as a cheap dispatch, so the house battery could charge from the grid at the peak rate while the car boosted. Ohme now supplies the car's data, power and energy, and leaves the slots, ready time and charge limit to Octopus. Three gaps that Ohme used to cover are now handled on the Octopus side for every Intelligent charger:
- the half-hour a car charges in after plugging in, before Octopus lists it, is priced as off-peak
- an empty planned list while Octopus re-plans a running session no longer wipes the plan (it is held for 10 minutes)
- planned dispatches are dropped once the car is unplugged (
SMART_CONTROL_NOT_AVAILABLE/SMART_CONTROL_OFF)
Manual car SoC for cars with no SoC sensor: a car with no car_charging_soc sensor but with a car_charging_energy and a car_charging_plugged sensor is now tracked automatically in input_number.predbat_car_charging_manual_soc_kwh[_N]. It follows what the charger actually delivered, resets when the car is unplugged, and survives a restart. myenergi, Wallbox and GE Cloud chargers now publish car_charging_plugged, and the templates show how to wire it. Without both sensors the car is planned from empty, as before.
Car charging
- Manual car SoC tracked from charger energy and reset on unplug, for cars with no SoC sensor, by @springfall2008 in #5678
Octopus
- Take Ohme's Intelligent car slots from Octopus, and close the gaps Ohme was covering by @springfall2008 in #5685
Fixes
- Plan: only split charge windows at dawn, not at the midnight light/dark reset by @springfall2008 in #5709
- Remove dead timezone fallbacks in
octopus.pyandsolcast.pynow thatstrptime_awarerejects naive times (#5695) by @springfall2008 in #5696
Documentation
- Debug journal: fold the 2026-10-19..20 review slice by @springfall2008 in #5700
Full Changelog: v9.4.5...v9.4.6