Skip to content

Axle event / read-only mode starts 10 minutes late, and ends 10 minutes late #3318

@WyndStryke

Description

@WyndStryke

Describe the bug

axle_control: True

Read-only mode started 10 minutes late, after a force-charge had already been initiated by predbat, and finished 10 minutes late.

During recent events, Axle's mode-schedule caused an import not an export, and I was trying to diagnose this (note the import which started at 08:00), hence setting predbat to read-only mode during the Axle event, when predbat started the force discharge. So predbat accidentally fixed the problem that I was trying to debug ...

The system was set to Read-Only (Axle) at 08:10:00.760186, and turned back to normal control at 09:10:00.782861. Note also that the 'Axle Event' binary sensor was also only turned on between 8:10 and 9:10.

2026-02-04 07:59:50.314001: Axle API: Fetching latest VPP event data
2026-02-04 07:59:50.532331: Axle API: Successfully fetched event data - export event from 2026-02-04 08:00:00+00:00 to 2026-02-04 09:00:00+00:00
...

2026-02-04 08:00:00.653158: Predbat mode is set to Control charge & discharge
...
2026-02-04 08:00:06.319792: Axle API: Fetched 1 total events from sensor binary_sensor.predbat_axle_event
2026-02-04 08:00:06.319824: Standing charge is set to 0.0p
2026-02-04 08:00:06.586391: Rate min forward looking: now 8.5p at end of forecast 8.5p
2026-02-04 08:00:06.586556: Import rates: min 8.5p, max 31.94p, average 27.06p
2026-02-04 08:00:06.592421: Setting Axle VPP session in range 02-04 08:00:00 - 02-04 09:00:00 export True pence_per_kwh 100
2026-02-04 08:00:06.592497: Note: API Overridden arg rates_export_override value [{'date': '2026-01-06', 'start': '08:00:00', 'end': '09:00:00', 'rate_increment': '100.0'}] index 0
2026-02-04 08:00:06.592740: Basic rate API override items for rates_export_override are [{'index': None, 'value': {'date': '2026-01-06', 'start': '08:00:00', 'end': '09:00:00', 'rate_increment': '100.0'}}]
2026-02-04 08:00:06.592855: Adding rate rates_export_override: {'date': '2026-01-06', 'start': '08:00:00', 'end': '09:00:00', 'rate_increment': '100.0'}p => 01-06 08:00:00 to 01-06 09:00:00 @ 100.0p, date 2026-01-06 00:00:00, day_of_week [], increment Truep
2026-02-04 08:00:06.592914: Adding rate rates_export_override: {'index': None, 'value': {'date': '2026-01-06', 'start': '08:00:00', 'end': '09:00:00', 'rate_increment': '100.0'}}p => 02-04 00:00:00 to 02-05 00:00:00 @ 0.0p, date None, day_of_week [], increment Truep
2026-02-04 08:00:06.595915: Export rates: min 6.0p, max 106.0p, average 8.08p
...
2026-02-04 08:00:18.489263: Exporting now - current SoC 15.917kWh and target 7.96kWh and power adjust 1.0
...
2026-02-04 08:00:26.556963: Inverter 0 Turning on scheduled export
...
2026-02-04 08:00:58.575228: Inverter 0 set force export to True
2026-02-04 08:00:58.575476: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-02-04 08:00:58.575583: Inverter 0 Current Target SoC is 10%, already at target
2026-02-04 08:00:58.575696: Current SoC 96% is greater than Target SoC 10. Grid Discharge enabled.
...
2026-02-04 08:00:58.917239: Best export window [ 04-02 08:00:00 - 04-02 08:30:00 @ 106.0p 100.0%, 04-02 08:30:00 - 04-02 09:00:00 @ 106.0p 100.0% ]
...
2026-02-04 08:01:05.343463: Inverter 0 with soc_max 16.58kWh, nominal_capacity 16.58kWh, battery rate raw 11500.0W, charge rate 7.0kW, discharge rate 7.0kW, battery_rate_min 0.0W, AC limit 7.0kW, export limit 100.0kW, reserve 10%, current_reserve 10%, temperature 16°C
2026-02-04 08:01:05.343630: Inverter 0 SoC: 15.92kW 96%, current charge rate 7000W, current discharge rate 7350W, current battery power 7327.0W, current battery voltage 235.5V, grid power 6683.0W, load power 535.0W, PV Power 130.0W
...
2026-02-04 08:01:08.093233: Total inverter register writes now 911
2026-02-04 08:01:08.136874: Completed run status Exporting
2026-02-04 08:01:08.163587: Info: record_status Exporting target 96%-56%
...
2026-02-04 08:05:00.527783: Predbat mode is set to Control charge & discharge
...
2026-02-04 08:05:06.031298: Axle API: Fetched 1 total events from sensor binary_sensor.predbat_axle_event
2026-02-04 08:05:06.031328: Standing charge is set to 0.0p
2026-02-04 08:05:06.282641: Rate min forward looking: now 8.5p at end of forecast 8.5p
2026-02-04 08:05:06.282811: Import rates: min 8.5p, max 31.94p, average 27.06p
2026-02-04 08:05:06.287901: Setting Axle VPP session in range 02-04 08:00:00 - 02-04 09:00:00 export True pence_per_kwh 100
2026-02-04 08:05:06.287955: Note: API Overridden arg rates_export_override value [{'date': '2026-01-06', 'start': '08:00:00', 'end': '09:00:00', 'rate_increment': '100.0'}] index 0
2026-02-04 08:05:06.288196: Basic rate API override items for rates_export_override are [{'index': None, 'value': {'date': '2026-01-06', 'start': '08:00:00', 'end': '09:00:00', 'rate_increment': '100.0'}}]
2026-02-04 08:05:06.288297: Adding rate rates_export_override: {'date': '2026-01-06', 'start': '08:00:00', 'end': '09:00:00', 'rate_increment': '100.0'}p => 01-06 08:00:00 to 01-06 09:00:00 @ 100.0p, date 2026-01-06 00:00:00, day_of_week [], increment Truep
2026-02-04 08:05:06.288352: Adding rate rates_export_override: {'index': None, 'value': {'date': '2026-01-06', 'start': '08:00:00', 'end': '09:00:00', 'rate_increment': '100.0'}}p => 02-04 00:00:00 to 02-05 00:00:00 @ 0.0p, date None, day_of_week [], increment Truep
2026-02-04 08:05:06.290978: Export rates: min 6.0p, max 106.0p, average 7.91p
2026-02-04 08:05:06.291196: Rate thresholds (for charge/export) are import 32.04p (0.0p), export 6.5p (0.0p)

...

...
2026-02-04 08:09:51.471938: Axle API: Fetching latest VPP event data
2026-02-04 08:09:51.685194: Axle API: Added event to history - export from 2026-02-04T08:00:00+0000 to 2026-02-04T09:00:00+0000
2026-02-04 08:09:51.702654: Axle API: Successfully fetched event data - export event from 2026-02-04 08:00:00+00:00 to 2026-02-04 09:00:00+00:00
2026-02-04 08:10:00.719838: --------------- PredBat - update at 2026-02-04 08:10:00+00:00 with clock skew 0 minutes, minutes now 490
...
2026-02-04 08:10:00.759712: Configuration: forecast_hours 48, num_cars 0, debug enable is False, calculate_plan_every 5 minutes
2026-02-04 08:10:00.760186: Axle VPP event is active - enabling read-only mode
2026-02-04 08:10:00.760252: Predbat mode is set to Control charge & discharge
2026-02-04 08:10:00.760308: NOTE: Read-only mode is enabled, the inverter controls will not be used!!
...
2026-02-04 08:55:49.812393: Total inverter register writes now 911
2026-02-04 08:55:49.846681: Completed run status Read-Only (Axle)
2026-02-04 08:55:49.856593: Info: record_status Read-Only (Axle)
...
2026-02-04 08:59:56.086265: Axle API: Fetching latest VPP event data
2026-02-04 08:59:56.297342: Axle API: Successfully fetched event data - export event from 2026-02-04 08:00:00+00:00 to 2026-02-04 09:00:00+00:00
...
2026-02-04 09:00:00.142221: Axle VPP event is active - enabling read-only mode
2026-02-04 09:00:00.142291: Predbat mode is set to Control charge & discharge
2026-02-04 09:00:00.142348: NOTE: Read-only mode is enabled, the inverter controls will not be used!!
...
2026-02-04 09:00:05.900521: Import rates: min 8.5p, max 31.94p, average 27.06p
2026-02-04 09:00:05.905412: Setting Axle VPP session in range 02-04 08:00:00 - 02-04 09:00:00 export True pence_per_kwh 100
2026-02-04 09:00:05.905462: Note: API Overridden arg rates_export_override value [{'date': '2026-01-06', 'start': '08:00:00', 'end': '09:00:00', 'rate_increment': '100.0'}] index 0
2026-02-04 09:00:05.905676: Basic rate API override items for rates_export_override are [{'index': None, 'value': {'date': '2026-01-06', 'start': '08:00:00', 'end': '09:00:00', 'rate_increment': '100.0'}}]
2026-02-04 09:00:05.905882: Adding rate rates_export_override: {'date': '2026-01-06', 'start': '08:00:00', 'end': '09:00:00', 'rate_increment': '100.0'}p => 01-06 08:00:00 to 01-06 09:00:00 @ 100.0p, date 2026-01-06 00:00:00, day_of_week [], increment Truep
2026-02-04 09:00:05.905938: Adding rate rates_export_override: {'index': None, 'value': {'date': '2026-01-06', 'start': '08:00:00', 'end': '09:00:00', 'rate_increment': '100.0'}}p => 02-04 00:00:00 to 02-05 00:00:00 @ 0.0p, date None, day_of_week [], increment Truep
2026-02-04 09:00:05.908458: Export rates: min 6.0p, max 6.0p, average 6.0p
2026-02-04 09:00:05.908485: Rate thresholds (for charge/export) are import 31.44p (0.0p), export 5.9p (0.0p)
2026-02-04 09:00:05.932726: High export rate found rates in range 6.0p to 6.0p
2026-02-04 09:00:05.933971: Low Import rate found rates in range 8.5p to 8.5p
...
2026-02-04 09:00:05.934005: Battery level now 9.29kWh, -1hr ago 16.08kWh, at midnight 6.13kWh, battery value change in the last hour -68.85p, change today 31.9p, rate_forward 10.13p
2026-02-04 09:00:05.934125: Last hour: net energy -6.01kWh, import 0.0kWh, export 6.01kWh, car 0kWh, load 0.44kWh, net cost -637.16p, import 0.0p, export -637.16p, car 0.0p, carbon -1.42kg
2026-02-04 09:00:05.999753: Today's energy total net 5.2kWh, import 11.4kWh, export 6.2kWh, cost -539.27p, import 99.02p, export -638.29p, carbon 0.7kg
...
2026-02-04 09:00:22.352414: Total inverter register writes now 911
2026-02-04 09:00:22.395125: Completed run status Read-Only (Axle)
2026-02-04 09:00:22.412195: Info: record_status Read-Only (Axle)
...
2026-02-04 09:05:00.806378: Axle VPP event is active - enabling read-only mode
2026-02-04 09:05:00.806447: Predbat mode is set to Control charge & discharge
2026-02-04 09:05:00.806506: NOTE: Read-only mode is enabled, the inverter controls will not be used!!
...
2026-02-04 09:05:06.241756: Axle API: Fetched 1 total events from sensor binary_sensor.predbat_axle_event
2026-02-04 09:05:06.241787: Standing charge is set to 0.0p
2026-02-04 09:05:06.484437: Rate min forward looking: now 8.5p at end of forecast 8.5p
2026-02-04 09:05:06.484574: Import rates: min 8.5p, max 31.94p, average 27.06p
2026-02-04 09:05:06.489568: Setting Axle VPP session in range 02-04 08:00:00 - 02-04 09:00:00 export True pence_per_kwh 100
...
2026-02-04 09:05:23.646472: Total inverter register writes now 911
2026-02-04 09:05:23.682320: Completed run status Read-Only (Axle)
2026-02-04 09:05:23.692912: Info: record_status Read-Only (Axle)
...
2026-02-04 09:09:56.870971: Axle API: Fetching latest VPP event data
2026-02-04 09:09:57.084448: Axle API: No scheduled event
...
2026-02-04 09:10:00.782861: Predbat mode is set to Control charge & discharge
...


Expected behaviour

For predbat to go into read-only mode at the start-time of the event, without initiating a force-discharge first, and to resume at the end-time of the event

Predbat version

v8.32.14

Environment details

  • Fox KH7, EC4300-H4 (15kWh usable)
  • HAos with predbat running as an add-on

Screenshots

Image Image

Log file

predbat.1 (1).log
predbat (4).log

Predbat debug yaml file

apps (3).yaml.txt
predbat_plan (3).html.txt
predbat_debug (4).yaml.txt

Metadata

Metadata

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions