You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
PredBat 9.3.3 with Octopus car_charging_planned set - not charging battery #5335
Describe the bug
Since setting the car_charging_planned variable in apps.yaml - I notice that the battery does not charge as planned when the slot is at the off-peak rate.
Expected behaviour
I have set the car_charging_planned variable to my Zappi Plug Status - so that it can monitor for charging - the plus is currently charging, but the battery is discharging.
This does not happen in versions 9.3.1 and below.
I love the idea that PredBat is now checking for valid charge slots - but I am now not able to fill my battery during the off-peak rate.
switch.predbat_octopus_intelligent_dynamic is on
switch.predbat_octopus_intelligent_charging is on
car_charging_now : 're:(sensor.wallbox_portal_status_description|sensor.myenergi_zappi_[0-9a-z]+_plug_status)' - I have also tried this with the CT clamp value for the Zappi, but the same behaviour.
Automated first-pass triage — a maintainer will review this before any action is taken.
This is classified as a bug. Detailed triage is on hold until the files below are attached: the report needs Predbat's actual configuration, rates and plan data to investigate, and screenshots alone aren't enough for that — so no theory or cause is being offered yet, to avoid guessing.
Please attach:
A predbat_debug.yaml and predbat.log captured while the problem is happening — the problem reports as repeating, so please capture them during a slot where the battery should be charging but isn't. Both come from the Debug panel on Predbat's web interface. The debug file downloads as predbat_debug.yaml.txt and can be attached as-is.
If the incident is over instead: the debug snapshot for that time, from the Debug column on the plan's History view (Predbat web interface → Plan → History), next to the time slot where it happened. With default settings only around the last 48 hours are kept, so grab that soon if it applies — and a predbat.log covering that period if you still have one.
When it happened (date, time, timezone) is also useful, along with the Octopus-integration/myenergi side if you have it (e.g. the Zappi sensor states and the dispatch schedule at that time) and screenshots of the plan or HA history graphs for the battery entities — the screenshots posted already cover some of this, so keep them handy in the ticket.
Automated first-pass triage — a maintainer will review this before any action is taken.
Following up on the earlier comment now the attachments are in, with three things found — one of them means we still need a file from you.
1. The attached predbat_debug.yaml is not from your system. Your own predbat.log at the same minute (01 Oct 15:00) shows Inverter 0 SoC 1.63kWh of 9.7kWh (17%), while the debug yaml's state dump says 9.809kWh of 12.58kWh (78%), and it lists entities you don't have (sensor.myenergi_zappi_17281751_plug_status, a GivEnergy ch2344g125 inverter, different Octopus account ids) — which is why that serial looked wrong to you. Your regex actually resolved to sensor.myenergi_zappi_16165997_plug_status in your own log (01 Oct 08:40 and 15:38), so entity selection is working. Please attach your own debug yaml from the Debug panel (the one you posted is another user's, so no config conclusions should be drawn from it).
2. Your log contains a clean before/after comparison, and it confirms the change you described. The log shows you running v9.3.1 through 01 Oct until you updated to v9.3.3 at 08:41, then back to v9.3.1 at 15:35 — so the two versions are compared ~10 minutes apart on the same afternoon, both with the car plugged into a started dispatch that Predbat's verification had cancelled (Octopus Intelligent: car 0 is in a dispatch but not charging, cancelling its slots at 15:07 and again 15:43):
9.3.3 (15:31): the house's rate for those dispatch minutes had been re-priced back to the normal 27.49p, the plan left the battery discharging (SoC 8% → 6% → 2%), and the log records removed the dispatch rate from 355 minutes of cars [0] which are not charging (repeated 15:07–15:29).
9.3.1 (15:42–15:55): the same cancellation had happened at 15:43, but the cheap 6.57p dispatch rate was left in place and the battery was charging (Charging target 2%-100%).
Best-supported mechanism, needing your own debug yaml to confirm: on 9.3.2/9.3.3 dispatch slots are only kept as cheap for the house when the car is confirmed charging in them (plan.py slot confirmation, gated on your octopus_intelligent_dynamic switch which is on), and a cancelled dispatch's discount is then stripped for the house too, outside the fixed 23:30–05:30 band (octopus.pydynamic_load_car_strip_feed_rates). On 9.3.1 a not-charging car released only the car's own kWh but left the house rate cheap, so the battery charged. PV10 planning also re-prices intelligent-adjusted minutes more than 30 minutes ahead at the max rate (prediction.py ~739), which started reaching integration-fed rates once the marker wipe was fixed in v9.3.2 (#5290/#5286), alongside the car-side change in #5304. Since most of your cheap minutes are dispatch-shaped rather than the fixed band (your own log's charge windows show the band as dispatch-sized pieces with holes), the effect on your plan is large. This is consistent with the maintainer's pointer to #5317, and separate from #5316.
3. One behaviour worth checking on your side: Predbat never saw your car as charging on 01 Oct (charging_now [False] all morning) while you report the Zappi was charging. If the Zappi was charging in an eco/boost mode, its plug status string may not match your car_charging_now_response: 'charging' — if it never reads "charging" at those times, the car never confirms its slot and the cancellation above is triggered. Please check the sensor.myenergi_zappi_16165997_plug_status history at the times in your screenshots.
Still needed:
Your ownpredbat_debug.yaml (Debug panel), captured while the battery is not charging in a cheap slot.
Your apps.yaml as .txt, especially car_charging_now_response and the octopus_intelligent_trust_slots setting.
If you re-enable 9.3.2/9.3.3 and it happens again, the debug snapshot for that slot (Plan → History → Debug column).
Interim option to test: turning switch.predbat_octopus_intelligent_dynamic off stops the cancellation and the strip, returning closer to 9.3.1's behaviour — at the cost of re-introducing the low-load protection #5229 added, so a maintainer judgement call on where that balance should sit.
Classification: bug · Priority: medium (IOG users generally; the workaround above is coarse).
Your log shows the charging change is working: Predbat saw the car charging at 19:41:24, two seconds after your Zappi switched to Charging, and put the dispatch back (car 0 slots resumed).
Before that, from 17:01 until 19:41, your Zappi reported EV Connected and the car took no energy (0.0 kWh in every hourly log line), even though Octopus had dispatches open from 18:30. Predbat cancels a dispatch the car isn't using, as Octopus may not bill it at the cheap rate. That's the on/off you saw. It's worth checking why the car didn't start until 19:41: Zappi mode, or the car's own charge schedule.
Since 19:41 the plan charges the battery from 21:00 to 22:30, still inside the 6.57p dispatch, so it costs the same as charging now.
To wrap up: this was a configuration mismatch, not a fault in the plan.
Cause:car_charging_now pointed at your Zappi's plug_status, which reads Charging, but car_charging_now_response didn't include charging. So Predbat never saw the car charging and cancelled the dispatch for the house battery.
Fix on your side: adding car_charging_now_response: ['charging'] resolves it. Your 19:41 log shows the dispatch resuming as soon as the Zappi switched to Charging.
Tonight's plan is fine. Your dispatch plus the off-peak band gives 10 hours at 6.57p (19:30-05:30). With your flat 12p export, the plan charges from 21:00, exports some of it back at 12p, and recharges overnight. That's why the battery isn't charging continuously.
Activity
springfall2008 commentedon Oct 1, 2026
Automated first-pass triage — a maintainer will review this before any action is taken.
This is classified as a bug. Detailed triage is on hold until the files below are attached: the report needs Predbat's actual configuration, rates and plan data to investigate, and screenshots alone aren't enough for that — so no theory or cause is being offered yet, to avoid guessing.
Please attach:
predbat_debug.yamlandpredbat.logcaptured while the problem is happening — the problem reports as repeating, so please capture them during a slot where the battery should be charging but isn't. Both come from the Debug panel on Predbat's web interface. The debug file downloads aspredbat_debug.yaml.txtand can be attached as-is.predbat.logcovering that period if you still have one.Details: debug history docs
leacho73 commentedon Oct 1, 2026
Behaviour on 9.3.1 - which is what I would expect.
gcoan commentedon Oct 1, 2026
please provide the requsted files @leacho73
leacho73 commentedon Oct 1, 2026
predbat.log
I think that the 're:(sensor.wallbox_portal_status_description|sensor.myenergi_zappi_[0-9a-z]+_plug_status)' mighe be part of the problem....
The debug shows sensor.myenergi_zappi_17281751_plug_status which isn't my sensor
chalfontchubby commentedon Oct 1, 2026
#5317 might be related
springfall2008 commentedon Oct 1, 2026
Automated first-pass triage — a maintainer will review this before any action is taken.
Following up on the earlier comment now the attachments are in, with three things found — one of them means we still need a file from you.
1. The attached
predbat_debug.yamlis not from your system. Your ownpredbat.logat the same minute (01 Oct 15:00) shows Inverter 0 SoC 1.63kWh of 9.7kWh (17%), while the debug yaml's state dump says 9.809kWh of 12.58kWh (78%), and it lists entities you don't have (sensor.myenergi_zappi_17281751_plug_status, a GivEnergych2344g125inverter, different Octopus account ids) — which is why that serial looked wrong to you. Your regex actually resolved tosensor.myenergi_zappi_16165997_plug_statusin your own log (01 Oct 08:40 and 15:38), so entity selection is working. Please attach your own debug yaml from the Debug panel (the one you posted is another user's, so no config conclusions should be drawn from it).2. Your log contains a clean before/after comparison, and it confirms the change you described. The log shows you running v9.3.1 through 01 Oct until you updated to v9.3.3 at 08:41, then back to v9.3.1 at 15:35 — so the two versions are compared ~10 minutes apart on the same afternoon, both with the car plugged into a started dispatch that Predbat's verification had cancelled (
Octopus Intelligent: car 0 is in a dispatch but not charging, cancelling its slotsat 15:07 and again 15:43):removed the dispatch rate from 355 minutes of cars [0] which are not charging(repeated 15:07–15:29).Charging target 2%-100%).Best-supported mechanism, needing your own debug yaml to confirm: on 9.3.2/9.3.3 dispatch slots are only kept as cheap for the house when the car is confirmed charging in them (
plan.pyslot confirmation, gated on youroctopus_intelligent_dynamicswitch which is on), and a cancelled dispatch's discount is then stripped for the house too, outside the fixed 23:30–05:30 band (octopus.pydynamic_load_car_strip_feed_rates). On 9.3.1 a not-charging car released only the car's own kWh but left the house rate cheap, so the battery charged. PV10 planning also re-prices intelligent-adjusted minutes more than 30 minutes ahead at the max rate (prediction.py~739), which started reaching integration-fed rates once the marker wipe was fixed in v9.3.2 (#5290/#5286), alongside the car-side change in #5304. Since most of your cheap minutes are dispatch-shaped rather than the fixed band (your own log's charge windows show the band as dispatch-sized pieces with holes), the effect on your plan is large. This is consistent with the maintainer's pointer to #5317, and separate from #5316.3. One behaviour worth checking on your side: Predbat never saw your car as charging on 01 Oct (
charging_now [False]all morning) while you report the Zappi was charging. If the Zappi was charging in an eco/boost mode, its plug status string may not match yourcar_charging_now_response: 'charging'— if it never reads "charging" at those times, the car never confirms its slot and the cancellation above is triggered. Please check thesensor.myenergi_zappi_16165997_plug_statushistory at the times in your screenshots.Still needed:
predbat_debug.yaml(Debug panel), captured while the battery is not charging in a cheap slot.apps.yamlas.txt, especiallycar_charging_now_responseand theoctopus_intelligent_trust_slotssetting.Interim option to test: turning
switch.predbat_octopus_intelligent_dynamicoff stops the cancellation and the strip, returning closer to 9.3.1's behaviour — at the cost of re-introducing the low-load protection #5229 added, so a maintainer judgement call on where that balance should sit.Classification: bug · Priority: medium (IOG users generally; the workaround above is coarse).
8 remaining items
leacho73 commentedon Oct 1, 2026
Same problem. Car has been charging for 16 mins - but no battery charging - the 2330-0530 also looks affected
chalfontchubby commentedon Oct 1, 2026
Logs please, for predbat and the state of the zappi sensor
chalfontchubby commentedon Oct 1, 2026
And debug.yaml
chalfontchubby commentedon Oct 1, 2026
Can you see car_charging_now going true in the logs
leacho73 commentedon Oct 1, 2026
sorry was on my phone - logs attached
predbat.log
predbat_debug.yaml.txt
Battery keeps bouncing between charging and not charging
chalfontchubby commentedon Oct 1, 2026
Your log shows the charging change is working: Predbat saw the car charging at 19:41:24, two seconds after your Zappi switched to Charging, and put the dispatch back (car 0 slots resumed).
Before that, from 17:01 until 19:41, your Zappi reported EV Connected and the car took no energy (0.0 kWh in every hourly log line), even though Octopus had dispatches open from 18:30. Predbat cancels a dispatch the car isn't using, as Octopus may not bill it at the cheap rate. That's the on/off you saw. It's worth checking why the car didn't start until 19:41: Zappi mode, or the car's own charge schedule.
Since 19:41 the plan charges the battery from 21:00 to 22:30, still inside the 6.57p dispatch, so it costs the same as charging now.
chalfontchubby commentedon Oct 1, 2026
Posted by Claude on behalf of @chalfontchubby.
To wrap up: this was a configuration mismatch, not a fault in the plan.
car_charging_nowpointed at your Zappi'splug_status, which readsCharging, butcar_charging_now_responsedidn't includecharging. So Predbat never saw the car charging and cancelled the dispatch for the house battery.car_charging_now_response: ['charging']resolves it. Your 19:41 log shows the dispatch resuming as soon as the Zappi switched toCharging.chargingto the default list and the templates, and documents how the matching works, so the next Zappi user doesn't hit this.If you have a list of your own in
apps.yaml, keepchargingin it after upgrading. The new default only applies when the setting is left out.leacho73 commentedon Oct 1, 2026
Battery is still at 0% and the car has been charging since 19:41 - it's still flicking between charging and discharging - my config is as above.
Any charge slots planned get removed
gcoan commentedon Oct 1, 2026
@leacho73
please provide log and debug after you made the above change cant debug from just a description
leacho73 commentedon Oct 2, 2026
Appears to be working now with:
car_charging_now_response: ['charging']
Rather than:
car_charging_now_response: